Index: uspace/app/bdsh/cmds/modules/kcon/kcon.c
===================================================================
--- uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision 27fd65116fa3cd8417356ac80ae88c098a4e2b42)
+++ uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision cbff4c2fc4078fa172648e8aee30c99bd3fd5eb1)
@@ -31,5 +31,5 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include <console.h>
+#include <io/console.h>
 #include "config.h"
 #include "util.h"
@@ -66,5 +66,5 @@
 	}
 
-	console_kcon_enable();
+	console_kcon_enable(fphone(stdout));
 
 	return CMD_SUCCESS;
Index: uspace/app/bdsh/exec.c
===================================================================
--- uspace/app/bdsh/exec.c	(revision 27fd65116fa3cd8417356ac80ae88c098a4e2b42)
+++ uspace/app/bdsh/exec.c	(revision cbff4c2fc4078fa172648e8aee30c99bd3fd5eb1)
@@ -124,6 +124,7 @@
 		cli_error(CL_EEXEC, "Cannot spawn `%s'.", cmd);
 		return 1;
-	} else {
-		return 0;
 	}
+	
+	task_wait(tid);
+	return 0;
 }
Index: uspace/app/bdsh/input.c
===================================================================
--- uspace/app/bdsh/input.c	(revision 27fd65116fa3cd8417356ac80ae88c098a4e2b42)
+++ uspace/app/bdsh/input.c	(revision cbff4c2fc4078fa172648e8aee30c99bd3fd5eb1)
@@ -33,8 +33,7 @@
 #include <stdlib.h>
 #include <string.h>
-#include <io/stream.h>
-#include <console.h>
-#include <kbd/kbd.h>
-#include <kbd/keycode.h>
+#include <io/console.h>
+#include <io/keycode.h>
+#include <io/style.h>
 #include <errno.h>
 #include <bool.h>
@@ -101,5 +100,5 @@
 static void read_line(char *buffer, int n)
 {
-	kbd_event_t ev;
+	console_event_t ev;
 	size_t offs, otmp;
 	wchar_t dec;
@@ -108,9 +107,10 @@
 	while (true) {
 		fflush(stdout);
-		if (kbd_get_event(&ev) < 0)
+		if (!console_get_event(fphone(stdin), &ev))
 			return;
-		if (ev.type == KE_RELEASE)
+		
+		if (ev.type != KEY_PRESS)
 			continue;
-
+		
 		if (ev.key == KC_ENTER || ev.key == KC_NENTER)
 			break;
@@ -132,7 +132,6 @@
 		}
 		if (ev.c >= ' ') {
-			//putchar(ev.c);
 			if (chr_encode(ev.c, buffer, &offs, n - 1) == EOK)
-				console_putchar(ev.c);
+				putchar(ev.c);
 		}
 	}
@@ -148,7 +147,7 @@
 	char line[INPUT_MAX];
 
-	console_set_style(STYLE_EMPHASIS);
+	console_set_style(fphone(stdout), STYLE_EMPHASIS);
 	printf("%s", usr->prompt);
-	console_set_style(STYLE_NORMAL);
+	console_set_style(fphone(stdout), STYLE_NORMAL);
 
 	read_line(line, INPUT_MAX);
