Index: uspace/drv/bus/usb/usbdiag/device.c
===================================================================
--- uspace/drv/bus/usb/usbdiag/device.c	(revision 09187c6ee5a3d4c32339c65240992a9a76d267dc)
+++ uspace/drv/bus/usb/usbdiag/device.c	(revision b3c396907c3dfb9b7afd227215a7bd6a7416d6dd)
@@ -64,5 +64,5 @@
 };
 
-static int device_init(usbdiag_dev_t *dev)
+static int device_init(usbdiag_dev_t *dev, const usb_endpoint_description_t **endpoints)
 {
 	int rc;
@@ -77,5 +77,5 @@
 
 #define _MAP_EP(target, ep_no) do {\
-	usb_endpoint_mapping_t *epm = usb_device_get_mapped_ep(dev->usb_dev, USBDIAG_EP_##ep_no);\
+	usb_endpoint_mapping_t *epm = usb_device_get_mapped_ep_desc(dev->usb_dev, endpoints[USBDIAG_EP_##ep_no]);\
 	if (!epm || !epm->present) {\
 		usb_log_error("Failed to map endpoint: " #ep_no ".");\
@@ -108,5 +108,5 @@
 }
 
-int usbdiag_dev_create(usb_device_t *dev, usbdiag_dev_t **out_diag_dev)
+int usbdiag_dev_create(usb_device_t *dev, usbdiag_dev_t **out_diag_dev, const usb_endpoint_description_t **endpoints)
 {
 	assert(dev);
@@ -120,5 +120,5 @@
 
 	int err;
-	if ((err = device_init(diag_dev)))
+	if ((err = device_init(diag_dev, endpoints)))
 		goto err_init;
 
Index: uspace/drv/bus/usb/usbdiag/device.h
===================================================================
--- uspace/drv/bus/usb/usbdiag/device.h	(revision 09187c6ee5a3d4c32339c65240992a9a76d267dc)
+++ uspace/drv/bus/usb/usbdiag/device.h	(revision b3c396907c3dfb9b7afd227215a7bd6a7416d6dd)
@@ -38,4 +38,5 @@
 
 #include <usb/dev/device.h>
+#include <usb/dev/driver.h>
 
 #define USBDIAG_EP_INTR_IN    1
@@ -60,5 +61,5 @@
 } usbdiag_dev_t;
 
-int usbdiag_dev_create(usb_device_t *, usbdiag_dev_t **);
+int usbdiag_dev_create(usb_device_t *, usbdiag_dev_t **, const usb_endpoint_description_t **);
 void usbdiag_dev_destroy(usbdiag_dev_t *);
 
Index: uspace/drv/bus/usb/usbdiag/main.c
===================================================================
--- uspace/drv/bus/usb/usbdiag/main.c	(revision 09187c6ee5a3d4c32339c65240992a9a76d267dc)
+++ uspace/drv/bus/usb/usbdiag/main.c	(revision b3c396907c3dfb9b7afd227215a7bd6a7416d6dd)
@@ -45,4 +45,6 @@
 #define NAME "usbdiag"
 
+static const usb_endpoint_description_t *diag_endpoints[];
+
 static int device_add(usb_device_t *dev)
 {
@@ -51,5 +53,5 @@
 
 	usbdiag_dev_t *diag_dev;
-	if ((rc = usbdiag_dev_create(dev, &diag_dev))) {
+	if ((rc = usbdiag_dev_create(dev, &diag_dev, diag_endpoints))) {
 		usb_log_error("Failed create device: %s.", str_error(rc));
 		goto err;
