Index: uspace/lib/libc/generic/io/stream.c
===================================================================
--- uspace/lib/libc/generic/io/stream.c	(revision 1c1002a59405920f79394ae77cb3e4581d5aa403)
+++ uspace/lib/libc/generic/io/stream.c	(revision 17f168ea0a58301762156920e112c588faa90d23)
@@ -44,4 +44,5 @@
 #include <ipc/services.h>
 #include <ipc/console.h>
+#include <kbd/kbd.h>
 #include <unistd.h>
 #include <async.h>
@@ -59,11 +60,15 @@
 	open_console();
 	if (console_phone >= 0) {
-		ipcarg_t r0, r1;
+		kbd_event_t ev;
+		int rc;
 		size_t i = 0;
 	
 		while (i < count) {
-			if (async_req_0_2(console_phone, CONSOLE_GETCHAR, &r0, &r1) < 0)
-				return -1;
-			((char *) buf)[i++] = r0;
+			do {
+				rc = kbd_get_event(&ev);
+				if (rc < 0) return -1;
+			} while (ev.c == 0);
+
+			((char *) buf)[i++] = ev.c;
 		}
 		return i;
