Index: kernel/arch/sparc64/include/memstr.h
===================================================================
--- kernel/arch/sparc64/include/memstr.h	(revision c18e666457af2dee7b1e5d5be66a683f42f252eb)
+++ kernel/arch/sparc64/include/memstr.h	(revision ce87a8aaf3ac3bf10d701b7bb521e7ebe40eda5c)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup sparc64	
+/** @addtogroup sparc64
  * @{
  */
Index: kernel/arch/sparc64/src/asm.S
===================================================================
--- kernel/arch/sparc64/src/asm.S	(revision c18e666457af2dee7b1e5d5be66a683f42f252eb)
+++ kernel/arch/sparc64/src/asm.S	(revision ce87a8aaf3ac3bf10d701b7bb521e7ebe40eda5c)
@@ -229,4 +229,9 @@
 	nop
 
+.global memsetw
+memsetw:
+	b _memsetw
+	nop
+
 
 .macro WRITE_ALTERNATE_REGISTER reg, bit
Index: kernel/arch/sparc64/src/drivers/sgcn.c
===================================================================
--- kernel/arch/sparc64/src/drivers/sgcn.c	(revision c18e666457af2dee7b1e5d5be66a683f42f252eb)
+++ kernel/arch/sparc64/src/drivers/sgcn.c	(revision ce87a8aaf3ac3bf10d701b7bb521e7ebe40eda5c)
@@ -131,5 +131,5 @@
 
 /* functions referenced from definitions of I/O operations structures */
-static void sgcn_putchar(outdev_t *, const char, bool);
+static void sgcn_putchar(outdev_t *, const wchar_t, bool);
 
 /** SGCN output device operations */
@@ -269,12 +269,15 @@
  * written straight away. 
  */
-static void sgcn_putchar(outdev_t *od, const char c, bool silent)
+static void sgcn_putchar(outdev_t *od, const wchar_t ch, bool silent)
 {
 	if (!silent) {
 		spinlock_lock(&sgcn_output_lock);
 		
-		sgcn_do_putchar(c);
-		if (c == '\n')
-			sgcn_do_putchar('\r');
+		if (ascii_check(ch)) {
+			sgcn_do_putchar(ch);
+			if (ch == '\n')
+				sgcn_do_putchar('\r');
+		} else
+			sgcn_do_putchar(invalch);
 		
 		spinlock_unlock(&sgcn_output_lock);
