Index: uspace/drv/vhc/hc.c
===================================================================
--- uspace/drv/vhc/hc.c	(revision 774afaae05c68de66709484e22ef17c90c2b3284)
+++ uspace/drv/vhc/hc.c	(revision cea3fca1b5fe5acf120cd2cfce8a7be20ef69281)
@@ -102,5 +102,5 @@
 /** Host controller manager main function.
  */
-void hc_manager(void)
+static int hc_manager_fibril(void *arg)
 {
 	list_initialize(&transaction_list);
@@ -139,4 +139,17 @@
 		free(transaction);
 	}
+
+	assert(false && "unreachable");
+	return EOK;
+}
+
+void hc_manager(void)
+{
+	fid_t fid = fibril_create(hc_manager_fibril, NULL);
+	if (fid == 0) {
+		printf(NAME ": failed to start HC manager fibril\n");
+		return;
+	}
+	fibril_add_ready(fid);
 }
 
Index: uspace/drv/vhc/hcd.c
===================================================================
--- uspace/drv/vhc/hcd.c	(revision 774afaae05c68de66709484e22ef17c90c2b3284)
+++ uspace/drv/vhc/hcd.c	(revision cea3fca1b5fe5acf120cd2cfce8a7be20ef69281)
@@ -95,14 +95,4 @@
 };
 
-/** Fibril wrapper for HC transaction manager.
- *
- * @param arg Not used.
- * @return Nothing, return argument is unreachable.
- */
-static int hc_manager_fibril(void *arg)
-{
-	hc_manager();
-	return EOK;
-}
 
 int main(int argc, char * argv[])
@@ -112,17 +102,11 @@
 	 * in devman output.
 	 */
-	sleep(4);
+	sleep(5);
+
+	usb_dprintf_enable(NAME, 0);
 
 	printf(NAME ": virtual USB host controller driver.\n");
 
-	usb_dprintf_enable(NAME, 0);
-
-	fid_t fid = fibril_create(hc_manager_fibril, NULL);
-	if (fid == 0) {
-		printf(NAME ": failed to start HC manager fibril\n");
-		return ENOMEM;
-	}
-	fibril_add_ready(fid);
-
+	hc_manager();
 
 	return driver_main(&vhc_driver);
