Index: kernel/genarch/include/genarch/fb/font-8x16.h
===================================================================
--- kernel/genarch/include/genarch/fb/font-8x16.h	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/include/genarch/fb/font-8x16.h	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -42,5 +42,5 @@
 #include <typedefs.h>
 
-extern uint16_t fb_font_glyph(const wchar_t ch);
+extern uint16_t fb_font_glyph(const char32_t ch);
 extern uint8_t fb_font[FONT_GLYPHS][FONT_SCANLINES];
 
Index: kernel/genarch/include/genarch/kbrd/scanc.h
===================================================================
--- kernel/genarch/include/genarch/kbrd/scanc.h	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/include/genarch/kbrd/scanc.h	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -41,6 +41,6 @@
 #define SCANCODES  128
 
-extern wchar_t sc_primary_map[SCANCODES];
-extern wchar_t sc_secondary_map[SCANCODES];
+extern char32_t sc_primary_map[SCANCODES];
+extern char32_t sc_secondary_map[SCANCODES];
 
 #endif
Index: kernel/genarch/src/drivers/dsrln/dsrlnout.c
===================================================================
--- kernel/genarch/src/drivers/dsrln/dsrlnout.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/dsrln/dsrlnout.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -49,5 +49,5 @@
 } dsrlnout_instance_t;
 
-static void dsrlnout_putwchar(outdev_t *dev, const wchar_t ch)
+static void dsrlnout_putuchar(outdev_t *dev, const char32_t ch)
 {
 	dsrlnout_instance_t *instance = (dsrlnout_instance_t *) dev->data;
@@ -62,5 +62,5 @@
 
 static outdev_operations_t dsrlndev_ops = {
-	.write = dsrlnout_putwchar,
+	.write = dsrlnout_putuchar,
 	.redraw = NULL,
 	.scroll_up = NULL,
Index: kernel/genarch/src/drivers/ega/ega.c
===================================================================
--- kernel/genarch/src/drivers/ega/ega.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/ega/ega.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -71,9 +71,9 @@
 } ega_instance_t;
 
-static void ega_putwchar(outdev_t *, wchar_t);
+static void ega_putuchar(outdev_t *, char32_t);
 static void ega_redraw(outdev_t *);
 
 static outdev_operations_t egadev_ops = {
-	.write = ega_putwchar,
+	.write = ega_putuchar,
 	.redraw = ega_redraw,
 	.scroll_up = NULL,
@@ -81,7 +81,7 @@
 };
 
-static uint16_t ega_oem_glyph(const wchar_t ch)
-{
-	if ((ch >= 0x0000) && (ch <= 0x007f))
+static uint16_t ega_oem_glyph(const char32_t ch)
+{
+	if (ch <= 0x007f)
 		return ch;
 
@@ -515,5 +515,5 @@
 }
 
-static void ega_display_wchar(ega_instance_t *instance, wchar_t ch)
+static void ega_display_wchar(ega_instance_t *instance, char32_t ch)
 {
 	uint16_t index = ega_oem_glyph(ch);
@@ -538,5 +538,5 @@
 }
 
-static void ega_putwchar(outdev_t *dev, wchar_t ch)
+static void ega_putuchar(outdev_t *dev, char32_t ch)
 {
 	ega_instance_t *instance = (ega_instance_t *) dev->data;
Index: kernel/genarch/src/drivers/ns16550/ns16550.c
===================================================================
--- kernel/genarch/src/drivers/ns16550/ns16550.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/ns16550/ns16550.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -112,5 +112,5 @@
 }
 
-static void ns16550_putwchar(outdev_t *dev, wchar_t ch)
+static void ns16550_putuchar(outdev_t *dev, char32_t ch)
 {
 	ns16550_instance_t *instance = (ns16550_instance_t *) dev->data;
@@ -128,5 +128,5 @@
 
 static outdev_operations_t ns16550_ops = {
-	.write = ns16550_putwchar,
+	.write = ns16550_putuchar,
 	.redraw = NULL
 };
Index: kernel/genarch/src/drivers/omap/uart.c
===================================================================
--- kernel/genarch/src/drivers/omap/uart.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/omap/uart.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -49,5 +49,5 @@
 }
 
-static void omap_uart_putwchar(outdev_t *dev, wchar_t ch)
+static void omap_uart_putuchar(outdev_t *dev, char32_t ch)
 {
 	omap_uart_t *uart = dev->data;
@@ -62,5 +62,5 @@
 
 static outdev_operations_t omap_uart_ops = {
-	.write = omap_uart_putwchar,
+	.write = omap_uart_putuchar,
 	.redraw = NULL,
 	.scroll_up = NULL,
Index: kernel/genarch/src/drivers/pl011/pl011.c
===================================================================
--- kernel/genarch/src/drivers/pl011/pl011.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/pl011/pl011.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -56,5 +56,5 @@
 }
 
-static void pl011_uart_putwchar(outdev_t *dev, wchar_t ch)
+static void pl011_uart_putuchar(outdev_t *dev, char32_t ch)
 {
 	pl011_uart_t *uart = dev->data;
@@ -74,5 +74,5 @@
 
 static outdev_operations_t pl011_uart_ops = {
-	.write = pl011_uart_putwchar,
+	.write = pl011_uart_putuchar,
 	.redraw = NULL,
 	.scroll_up = NULL,
Index: kernel/genarch/src/drivers/s3c24xx/uart.c
===================================================================
--- kernel/genarch/src/drivers/s3c24xx/uart.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/drivers/s3c24xx/uart.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -61,5 +61,5 @@
 }
 
-static void s3c24xx_uart_putwchar(outdev_t *dev, wchar_t ch)
+static void s3c24xx_uart_putuchar(outdev_t *dev, char32_t ch)
 {
 	s3c24xx_uart_t *uart =
@@ -94,5 +94,5 @@
 
 static outdev_operations_t s3c24xx_uart_ops = {
-	.write = s3c24xx_uart_putwchar,
+	.write = s3c24xx_uart_putuchar,
 	.redraw = NULL,
 	.scroll_up = NULL,
Index: kernel/genarch/src/fb/fb.c
===================================================================
--- kernel/genarch/src/fb/fb.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/fb/fb.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -123,5 +123,5 @@
 } fb_instance_t;
 
-static void fb_putwchar(outdev_t *, wchar_t);
+static void fb_putuchar(outdev_t *, char32_t);
 static void fb_redraw(outdev_t *);
 static void fb_scroll_up(outdev_t *);
@@ -129,5 +129,5 @@
 
 static outdev_operations_t fbdev_ops = {
-	.write = fb_putwchar,
+	.write = fb_putuchar,
 	.redraw = fb_redraw,
 	.scroll_up = fb_scroll_up,
@@ -418,5 +418,5 @@
  *
  */
-static void fb_putwchar(outdev_t *dev, wchar_t ch)
+static void fb_putuchar(outdev_t *dev, char32_t ch)
 {
 	fb_instance_t *instance = (fb_instance_t *) dev->data;
Index: kernel/genarch/src/fb/font-8x16.c
===================================================================
--- kernel/genarch/src/fb/font-8x16.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/fb/font-8x16.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -43,5 +43,5 @@
  * mark glyph if no specific glyph exists.
  */
-uint16_t fb_font_glyph(const wchar_t ch)
+uint16_t fb_font_glyph(const char32_t ch)
 {
 	if (ch == 0x0000)
Index: kernel/genarch/src/kbrd/kbrd.c
===================================================================
--- kernel/genarch/src/kbrd/kbrd.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/kbrd.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -76,5 +76,5 @@
  * @param sc Scancode of the key being released.
  */
-static void key_released(kbrd_instance_t *instance, wchar_t sc)
+static void key_released(kbrd_instance_t *instance, char32_t sc)
 {
 	spinlock_lock(&instance->keylock);
@@ -103,10 +103,10 @@
  * @param sc Scancode of the key being pressed.
  */
-static void key_pressed(kbrd_instance_t *instance, wchar_t sc)
+static void key_pressed(kbrd_instance_t *instance, char32_t sc)
 {
 	bool letter;
 	bool shift;
 	bool capslock;
-	wchar_t ch;
+	char32_t ch;
 
 	spinlock_lock(&instance->keylock);
@@ -158,5 +158,5 @@
 
 	while (true) {
-		wchar_t sc = indev_pop_character(&instance->raw);
+		char32_t sc = indev_pop_character(&instance->raw);
 
 		if (sc == IGNORE_CODE)
Index: kernel/genarch/src/kbrd/kbrd_at.c
===================================================================
--- kernel/genarch/src/kbrd/kbrd_at.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/kbrd_at.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -59,5 +59,5 @@
 #define AT_SCROLL_SCAN_CODE	0x7E
 
-static bool is_lock_key(wchar_t);
+static bool is_lock_key(char32_t);
 
 static indev_operations_t kbrd_raw_ops = {
@@ -69,5 +69,5 @@
  * @param sc Scancode of the key being released.
  */
-static void key_released(kbrd_instance_t *instance, wchar_t sc)
+static void key_released(kbrd_instance_t *instance, char32_t sc)
 {
 	spinlock_lock(&instance->keylock);
@@ -96,5 +96,5 @@
  * @param sc Scancode of the key being pressed.
  */
-static void key_pressed(kbrd_instance_t *instance, wchar_t sc)
+static void key_pressed(kbrd_instance_t *instance, char32_t sc)
 {
 	bool letter;
@@ -140,5 +140,5 @@
 
 	while (true) {
-		wchar_t sc = indev_pop_character(&instance->raw);
+		char32_t sc = indev_pop_character(&instance->raw);
 
 		if (sc == AT_KEY_RELEASE) {
@@ -203,5 +203,5 @@
 }
 
-static bool is_lock_key(wchar_t sc)
+static bool is_lock_key(char32_t sc)
 {
 	return ((sc == AT_CAPS_SCAN_CODE) || (sc == AT_NUM_SCAN_CODE) ||
Index: kernel/genarch/src/kbrd/scanc_at.c
===================================================================
--- kernel/genarch/src/kbrd/scanc_at.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/scanc_at.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -39,5 +39,5 @@
 
 /** Primary meaning of scancodes. */
-wchar_t sc_primary_map[] = {
+char32_t sc_primary_map[] = {
 	U_NULL, /* 0x00 */
 	U_SPECIAL, /* 0x01 - F9 */
@@ -135,5 +135,5 @@
 
 /** Secondary meaning of scancodes. */
-wchar_t sc_secondary_map[] = {
+char32_t sc_secondary_map[] = {
 	U_NULL, /* 0x00 */
 	U_SPECIAL, /* 0x01 - F9 */
Index: kernel/genarch/src/kbrd/scanc_mac.c
===================================================================
--- kernel/genarch/src/kbrd/scanc_mac.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/scanc_mac.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -40,5 +40,5 @@
 
 /** Primary meaning of scancodes. */
-wchar_t sc_primary_map[SCANCODES] = {
+char32_t sc_primary_map[SCANCODES] = {
 	[0x00] = 'a',
 	[0x01] = 's',
@@ -172,5 +172,5 @@
 
 /** Secondary meaning of scancodes. */
-wchar_t sc_secondary_map[SCANCODES] = {
+char32_t sc_secondary_map[SCANCODES] = {
 	[0x00] = 'A',
 	[0x01] = 'S',
Index: kernel/genarch/src/kbrd/scanc_pc.c
===================================================================
--- kernel/genarch/src/kbrd/scanc_pc.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/scanc_pc.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -40,5 +40,5 @@
 
 /** Primary meaning of scancodes. */
-wchar_t sc_primary_map[SCANCODES] = {
+char32_t sc_primary_map[SCANCODES] = {
 	U_NULL,         /* 0x00 - undefined */
 	U_ESCAPE,       /* 0x01 - Esc */
@@ -129,5 +129,5 @@
 
 /** Secondary meaning of scancodes. */
-wchar_t sc_secondary_map[SCANCODES] = {
+char32_t sc_secondary_map[SCANCODES] = {
 	U_NULL,         /* 0x00 - undefined */
 	U_ESCAPE,       /* 0x01 - Esc */
Index: kernel/genarch/src/kbrd/scanc_sun.c
===================================================================
--- kernel/genarch/src/kbrd/scanc_sun.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/kbrd/scanc_sun.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -40,5 +40,5 @@
 
 /** Primary meaning of scancodes. */
-wchar_t sc_primary_map[SCANCODES] = {
+char32_t sc_primary_map[SCANCODES] = {
 	[0x00] = U_SPECIAL,
 	[0x01] = U_SPECIAL,
@@ -172,5 +172,5 @@
 
 /** Secondary meaning of scancodes. */
-wchar_t sc_secondary_map[SCANCODES] = {
+char32_t sc_secondary_map[SCANCODES] = {
 	[0x00] = U_SPECIAL,
 	[0x01] = U_SPECIAL,
Index: kernel/genarch/src/srln/srln.c
===================================================================
--- kernel/genarch/src/srln/srln.c	(revision 41408d9416b973ae77a095adf3dc309772bd1c56)
+++ kernel/genarch/src/srln/srln.c	(revision 4db4718dad043fdba9393afca6e05aaf21c99c72)
@@ -56,5 +56,5 @@
 
 	while (true) {
-		wchar_t ch = indev_pop_character(&instance->raw);
+		char32_t ch = indev_pop_character(&instance->raw);
 
 		/* ANSI escape sequence processing */
