Index: uspace/srv/console/console.c
===================================================================
--- uspace/srv/console/console.c	(revision 7ce3cb23f444724ec768a4973b4707c2e29b3d54)
+++ uspace/srv/console/console.c	(revision cb01e1ee9f069d7d14148e3efc3cb37d1011b8de)
@@ -49,4 +49,5 @@
 #include <sys/mman.h>
 #include <stdio.h>
+#include <string.h>
 #include <sysinfo.h>
 #include <event.h>
@@ -466,23 +467,26 @@
 {
 	ipc_callid_t callid;
-	size_t len;
-	size_t i;
-
-	if (!ipc_data_write_receive(&callid, &len)) {
+	size_t size;
+	wchar_t ch;
+	size_t off;
+
+	if (!ipc_data_write_receive(&callid, &size)) {
 		ipc_answer_0(callid, EINVAL);
 		ipc_answer_0(rid, EINVAL);
 	}
 
-	if (len > CWRITE_BUF_SIZE)
-		len = CWRITE_BUF_SIZE;
-
-	(void) ipc_data_write_finalize(callid, cwrite_buf, len);
-
-	for (i = 0; i < len; i++) {
-		write_char(consnum, cwrite_buf[i]);
+	if (size > CWRITE_BUF_SIZE)
+		size = CWRITE_BUF_SIZE;
+
+	(void) ipc_data_write_finalize(callid, cwrite_buf, size);
+
+	off = 0;
+	while (off < size) {
+		ch = str_decode(cwrite_buf, &off, size);
+		write_char(consnum, ch);
 	}
 
 	gcons_notify_char(consnum);
-	ipc_answer_1(rid, EOK, len);
+	ipc_answer_1(rid, EOK, size);
 }
 
Index: uspace/srv/fb/fb.c
===================================================================
--- uspace/srv/fb/fb.c	(revision 7ce3cb23f444724ec768a4973b4707c2e29b3d54)
+++ uspace/srv/fb/fb.c	(revision cb01e1ee9f069d7d14148e3efc3cb37d1011b8de)
@@ -69,4 +69,6 @@
 #define DEFAULT_FGCOLOR  0x000000
 
+#define GLYPH_UNAVAIL	'?'
+
 #define MAX_ANIM_LEN     8
 #define MAX_ANIMATIONS   4
@@ -79,5 +81,5 @@
 /** Function to draw a glyph. */
 typedef void (*dg_t)(unsigned int x, unsigned int y, bool cursor,
-    uint8_t *glyphs, uint8_t glyph, uint32_t fg_color, uint32_t bg_color);
+    uint8_t *glyphs, uint32_t glyph, uint32_t fg_color, uint32_t bg_color);
 
 struct {
@@ -670,5 +672,5 @@
 	/* Check glyph range. */
 	if (glyph >= FONT_GLYPHS)
-		return;
+		glyph = GLYPH_UNAVAIL;
 
 	/*
@@ -734,5 +736,5 @@
 	/* Check glyph range. */
 	if (glyph >= FONT_GLYPHS)
-		return;
+		glyph = GLYPH_UNAVAIL;
 
 	/* Pre-render 1x the foreground and background color pixels. */
