Index: uspace/app/init/init.c
===================================================================
--- uspace/app/init/init.c	(revision 53d6ac3d5accc6b8bd60ebaa45fd47d1929e8510)
+++ uspace/app/init/init.c	(revision a347a110d7ea83c8d45c6874cb10eb949d5d595c)
@@ -196,21 +196,29 @@
 }
 
-static void console(const char *svc)
-{
-	printf("%s: Spawning %s %s\n", NAME, SRV_CONSOLE, svc);
+static void console(const char *isvc, const char *fbsvc)
+{
+	printf("%s: Spawning %s %s %s\n", NAME, SRV_CONSOLE, isvc, fbsvc);
 	
 	/* Wait for the input service to be ready */
 	service_id_t service_id;
-	int rc = loc_service_get_id(svc, &service_id, IPC_FLAG_BLOCKING);
-	if (rc != EOK) {
-		printf("%s: Error waiting on %s (%s)\n", NAME, svc,
-		    str_error(rc));
-		return;
-	}
-	
-	rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, svc, NULL);
-	if (rc != EOK) {
-		printf("%s: Error spawning %s %s (%s)\n", NAME, SRV_CONSOLE,
-		    svc, str_error(rc));
+	int rc = loc_service_get_id(isvc, &service_id, IPC_FLAG_BLOCKING);
+	if (rc != EOK) {
+		printf("%s: Error waiting on %s (%s)\n", NAME, isvc,
+		    str_error(rc));
+		return;
+	}
+	
+	/* Wait for the framebuffer service to be ready */
+	rc = loc_service_get_id(fbsvc, &service_id, IPC_FLAG_BLOCKING);
+	if (rc != EOK) {
+		printf("%s: Error waiting on %s (%s)\n", NAME, fbsvc,
+		    str_error(rc));
+		return;
+	}
+	
+	rc = task_spawnl(NULL, SRV_CONSOLE, SRV_CONSOLE, isvc, fbsvc, NULL);
+	if (rc != EOK) {
+		printf("%s: Error spawning %s %s %s (%s)\n", NAME, SRV_CONSOLE,
+		    isvc, fbsvc, str_error(rc));
 	}
 }
@@ -300,5 +308,5 @@
 	spawn("/srv/fb");
 	spawn("/srv/input");
-	console("hid/input");
+	console("hid/input", "hid/fb0");
 	
 	spawn("/srv/clip");
