Index: uspace/lib/usbhid/src/hidreport.c
===================================================================
--- uspace/lib/usbhid/src/hidreport.c	(revision 35bc430f632555e3c97a31892fd2ec0ceb60a89a)
+++ uspace/lib/usbhid/src/hidreport.c	(revision 8b68bdfef6c3f6dfcee87b4f33a9f87f225f827d)
@@ -60,7 +60,11 @@
 	};
 	
+	size_t desc_size = 0;
+	const void *desc =
+	    usb_device_get_configuration_descriptor(dev, &desc_size);
+
 	usb_dp_parser_data_t parser_data = {
-		.data = dev->descriptors.configuration,
-		.size = dev->descriptors.configuration_size,
+		.data = desc,
+		.size = desc_size,
 		.arg = NULL
 	};
@@ -70,6 +74,5 @@
 	 */
 	const uint8_t *d =
-	    usb_dp_get_nested_descriptor(&parser, &parser_data,
-	    dev->descriptors.configuration);
+	    usb_dp_get_nested_descriptor(&parser, &parser_data, desc);
 	
 	/*
@@ -77,7 +80,7 @@
 	 */
 	int i = 0;
-	while (d != NULL && i < dev->interface_no) {
+	while (d != NULL && i < usb_device_get_iface_number(dev)) {
 		d = usb_dp_get_sibling_descriptor(&parser, &parser_data,
-		    dev->descriptors.configuration, d);
+		    desc, d);
 		++i;
 	}
@@ -85,5 +88,5 @@
 	if (d == NULL) {
 		usb_log_error("The %d. interface descriptor not found!\n",
-		    dev->interface_no);
+		    usb_device_get_iface_number(dev));
 		return ENOENT;
 	}
@@ -135,7 +138,7 @@
 	 * Get the descriptor from the device.
 	 */
-	int rc = usb_request_get_descriptor(&dev->ctrl_pipe,
+	int rc = usb_request_get_descriptor(usb_device_get_default_pipe(dev),
 	    USB_REQUEST_TYPE_STANDARD, USB_REQUEST_RECIPIENT_INTERFACE,
-	    USB_DESCTYPE_HID_REPORT, 0, dev->interface_no,
+	    USB_DESCTYPE_HID_REPORT, 0, usb_device_get_iface_number(dev),
 	    *report_desc, length, &actual_size);
 
