Index: uspace/drv/vhc/hub.c
===================================================================
--- uspace/drv/vhc/hub.c	(revision ba5ab0911b1cbe87ab32ec0e395bfb35e9d19df4)
+++ uspace/drv/vhc/hub.c	(revision 7a51d7511747ba130ccc1c603735e62f275b2205)
@@ -63,5 +63,5 @@
 	    = fibril_create(hub_register_in_devman_fibril, hc_dev);
 	if (root_hub_registration == 0) {
-		printf(NAME ": failed to register root hub\n");
+		printf(NAME ": failed to create hub registration fibril\n");
 		return;
 	}
@@ -79,9 +79,9 @@
 	device_t *hc_dev = (device_t *) arg;
 
-	int hc = usb_drv_hc_connect(hc_dev, hc_dev->handle, IPC_FLAG_BLOCKING);
-	if (hc < 0) {
-		printf(NAME ": failed to register root hub\n");
-		return hc;
-	}
+	int hc;
+	do {
+		hc = usb_drv_hc_connect(hc_dev, hc_dev->handle,
+		    IPC_FLAG_BLOCKING);
+	} while (hc < 0);
 
 	usb_drv_reserve_default_address(hc);
