Index: uspace/drv/vhc/hub.c
===================================================================
--- uspace/drv/vhc/hub.c	(revision 89beb08af5b8bc669798ab0863054eae071563c7)
+++ uspace/drv/vhc/hub.c	(revision ef8d6558c58526391170f038efdfc4dfa25d034f)
@@ -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);
