Index: uspace/app/init/init.c
===================================================================
--- uspace/app/init/init.c	(revision 515a010298db5702edc01e5a63d4612a76fe0140)
+++ uspace/app/init/init.c	(revision 5719f6ddbbd629f7eb5c571fcbcbd7a87a3565c7)
@@ -46,8 +46,4 @@
 #include "version.h"
 
-#define BUF_SIZE 150000
-
-static char *buf;
-
 static void console_wait(void)
 {
@@ -83,26 +79,14 @@
 static void spawn(char *fname)
 {
+	char *argv[2];
+
 	printf(NAME ": Spawning %s\n", fname);
-	
-	int fd = open(fname, O_RDONLY);
-	if (fd >= 0) {
-	
-		ssize_t rd;
-		size_t len = 0;
-		
-		// FIXME: cannot do long reads yet
-		do {
-			rd = read(fd, buf + len, 1024);
-			if (rd > 0)
-				len += rd;
-			
-		} while (rd > 0);
-		
-		if (len > 0) {
-			task_spawn(buf, len);
-			sleep(1);	// FIXME
-		}
-		
-		close(fd);
+
+	argv[0] = fname;
+	argv[1] = NULL;
+
+	if (task_spawn(fname, argv) != 0) {
+		/* Success */
+		sleep(1);
 	}
 }
@@ -118,6 +102,4 @@
 	}
 	
-	buf = malloc(BUF_SIZE);
-	
 	// FIXME: spawn("/sbin/pci");
 	spawn("/sbin/fb");
@@ -130,8 +112,8 @@
 	spawn("/sbin/fat");
 	spawn("/sbin/tetris");
+	spawn("/sbin/cli");
 	// FIXME: spawn("/sbin/tester");
 	spawn("/sbin/klog");
 	
-	free(buf);
 	return 0;
 }
