Index: uspace/lib/usb/Makefile
===================================================================
--- uspace/lib/usb/Makefile	(revision 59c163c4895f8831dfc9f2c695c66139130bc011)
+++ uspace/lib/usb/Makefile	(revision 1e6dc5b53b33bd0abfbfab8a742f6a9f8c664cee)
@@ -31,4 +31,5 @@
 EXTRA_CFLAGS += \
 	-I$(LIBDRV_PREFIX)/include \
+	-I$(LIBUSBDEV_PREFIX)/include \
 	-Iinclude
 
Index: uspace/lib/usb/include/usb/ddfiface.h
===================================================================
--- uspace/lib/usb/include/usb/ddfiface.h	(revision 59c163c4895f8831dfc9f2c695c66139130bc011)
+++ uspace/lib/usb/include/usb/ddfiface.h	(revision 1e6dc5b53b33bd0abfbfab8a742f6a9f8c664cee)
@@ -44,5 +44,5 @@
 extern usb_iface_t usb_iface_hub_impl;
 
-int usb_iface_get_address_set_my_handle_impl(ddf_fun_t *, devman_handle_t,
+int usb_iface_get_address_from_device_data(ddf_fun_t *, devman_handle_t,
     usb_address_t *);
 extern usb_iface_t usb_iface_hub_child_impl;
Index: uspace/lib/usb/src/ddfiface.c
===================================================================
--- uspace/lib/usb/src/ddfiface.c	(revision 59c163c4895f8831dfc9f2c695c66139130bc011)
+++ uspace/lib/usb/src/ddfiface.c	(revision 1e6dc5b53b33bd0abfbfab8a742f6a9f8c664cee)
@@ -39,4 +39,5 @@
 #include <usb/hc.h>
 #include <usb/debug.h>
+#include <usb/dev/hub.h>
 #include <errno.h>
 #include <assert.h>
@@ -51,5 +52,5 @@
 usb_iface_t  usb_iface_hub_child_impl = {
 	.get_hc_handle = usb_iface_get_hc_handle_device_impl,
-	.get_address = usb_iface_get_address_set_my_handle_impl
+	.get_address = usb_iface_get_address_from_device_data,
 };
 
@@ -131,11 +132,15 @@
  * @return Error code.
  */
-int usb_iface_get_address_set_my_handle_impl(ddf_fun_t *fun,
+int usb_iface_get_address_from_device_data(ddf_fun_t *fun,
     devman_handle_t handle, usb_address_t *address)
 {
-	if (handle == 0) {
-		handle = fun->handle;
-	}
-	return usb_iface_get_address_forward_impl(fun, handle, address);
+	assert(fun);
+	assert(handle == 0);
+	assert(fun->driver_data);
+	usb_hub_attached_device_t *device = fun->driver_data;
+	assert(device->fun == fun);
+	if (address)
+		*address = device->address;
+	return EOK;
 }
 
