Index: uspace/lib/usbdev/src/hub.c
===================================================================
--- uspace/lib/usbdev/src/hub.c	(revision c80448411a8de93942f2321d3e209c33631da03e)
+++ uspace/lib/usbdev/src/hub.c	(revision c59dbdd5ce372f41ebb6a74ede00b01c2cfae322)
@@ -230,6 +230,6 @@
 	/* Initialize connection to device. */
 	usb_device_connection_t dev_conn;
-	rc = usb_device_connection_initialize_on_default_address(
-	    &dev_conn, hc_conn);
+	rc = usb_device_connection_initialize(
+	    &dev_conn, hc_conn, USB_ADDRESS_DEFAULT);
 	if (rc != EOK) {
 		rc = ENOTCONN;
@@ -237,17 +237,18 @@
 	}
 
+	/* Initialize control pipe on default address. Don't register yet. */
+	usb_pipe_t ctrl_pipe;
+	rc = usb_pipe_initialize_default_control(&ctrl_pipe, &dev_conn);
+	if (rc != EOK) {
+		rc = ENOTCONN;
+		goto leave_release_free_address;
+	}
+
 	/*
-	 * We will not register control pipe on default address.
-	 * The registration might fail. That means that someone else already
-	 * registered that endpoint. We will simply wait and try again.
+	 * The default address request might fail.
+	 * That means that someone else is already using that address.
+	 * We will simply wait and try again.
 	 * (Someone else already wants to add a new device.)
 	 */
-	usb_pipe_t ctrl_pipe;
-	rc = usb_pipe_initialize_default_control(&ctrl_pipe, &dev_conn);
-	if (rc != EOK) {
-		rc = ENOTCONN;
-		goto leave_release_free_address;
-	}
-
 	do {
 		rc = usb_hc_request_address(hc_conn, USB_ADDRESS_DEFAULT,
@@ -262,5 +263,5 @@
 	}
 
-	/* Register control pipe on default address. */
+	/* Register control pipe on default address. 0 means no interval. */
 	rc = usb_pipe_register(&ctrl_pipe, 0);
 	if (rc != EOK) {
@@ -270,5 +271,4 @@
 
 	struct timeval end_time;
-
 	rc = gettimeofday(&end_time, NULL);
 	if (rc != EOK) {
@@ -353,5 +353,7 @@
 	 */
 leave_release_default_address:
-	usb_hc_unregister_device(hc_conn, USB_ADDRESS_DEFAULT);
+	if (usb_hc_unregister_device(hc_conn, USB_ADDRESS_DEFAULT) != EOK)
+		usb_log_warning("%s: Failed to unregister defaut device.\n",
+		    __FUNCTION__);
 
 leave_release_free_address:
Index: uspace/lib/usbdev/src/pipes.c
===================================================================
--- uspace/lib/usbdev/src/pipes.c	(revision c80448411a8de93942f2321d3e209c33631da03e)
+++ uspace/lib/usbdev/src/pipes.c	(revision c59dbdd5ce372f41ebb6a74ede00b01c2cfae322)
@@ -31,5 +31,5 @@
  */
 /** @file
- * USB endpoint pipes miscellaneous functions.
+ * USB endpoint pipes functions.
  */
 #include <usb/dev/pipes.h>
Index: uspace/lib/usbdev/src/pipesinit.c
===================================================================
--- uspace/lib/usbdev/src/pipesinit.c	(revision c80448411a8de93942f2321d3e209c33631da03e)
+++ uspace/lib/usbdev/src/pipesinit.c	(revision c59dbdd5ce372f41ebb6a74ede00b01c2cfae322)
@@ -31,5 +31,5 @@
  */
 /** @file
- * Initialization of endpoint pipes.
+ * Non trivial initialization of endpoint pipes.
  *
  */
