Index: kernel/generic/src/console/console.c
===================================================================
--- kernel/generic/src/console/console.c	(revision b9c742533861d30ff1a3f7a0986e6b524800644d)
+++ kernel/generic/src/console/console.c	(revision 4ef117f8acd0c54154d30257a2472a276db3c765)
@@ -71,5 +71,5 @@
 
 /** Kernel log spinlock */
-SPINLOCK_INITIALIZE(klog_lock);
+SPINLOCK_STATIC_INITIALIZE_NAME(klog_lock, "*klog_lock");
 
 /** Physical memory area used for klog buffer */
@@ -84,7 +84,9 @@
 
 static void stdout_write(outdev_t *dev, wchar_t ch, bool silent);
+static void stdout_redraw(outdev_t *dev);
 
 static outdev_operations_t stdout_ops = {
-	.write = stdout_write
+	.write = stdout_write,
+	.redraw = stdout_redraw
 };
 
@@ -122,5 +124,17 @@
 	for (cur = dev->list.next; cur != &dev->list; cur = cur->next) {
 		outdev_t *sink = list_get_instance(cur, outdev_t, link);
-		sink->op->write(sink, ch, silent);
+		if ((sink) && (sink->op->write))
+			sink->op->write(sink, ch, silent);
+	}
+}
+
+static void stdout_redraw(outdev_t *dev)
+{
+	link_t *cur;
+	
+	for (cur = dev->list.next; cur != &dev->list; cur = cur->next) {
+		outdev_t *sink = list_get_instance(cur, outdev_t, link);
+		if ((sink) && (sink->op->redraw))
+			sink->op->redraw(sink);
 	}
 }
@@ -156,5 +170,6 @@
 	
 	silent = false;
-	arch_grab_console();
+	if ((stdout) && (stdout->op->redraw))
+		stdout->op->redraw(stdout);
 	
 	/* Force the console to print the prompt */
@@ -165,6 +180,6 @@
 void release_console(void)
 {
+	// FIXME arch_release_console
 	silent = true;
-	arch_release_console();
 }
 
