Index: kernel/generic/src/printf/vprintf.c
===================================================================
--- kernel/generic/src/printf/vprintf.c	(revision 28a5ebdea900783081bd23e40f685b6b0479c63d)
+++ kernel/generic/src/printf/vprintf.c	(revision 240b2e45101c06feb57b94e54da30166ec13b1eb)
@@ -33,11 +33,12 @@
  */
 
+#include <arch/asm.h>
+#include <console/console.h>
 #include <print.h>
 #include <printf/printf_core.h>
 #include <putchar.h>
+#include <str.h>
 #include <synch/spinlock.h>
-#include <arch/asm.h>
 #include <typedefs.h>
-#include <str.h>
 
 static int vprintf_str_write(const char *str, size_t size, void *data)
@@ -74,4 +75,6 @@
 	char32_t uc;
 
+	console_lock();
+
 	while ((uc = str_decode(str, &offset, STR_NO_LIMIT)) != 0) {
 		putuchar(uc);
@@ -80,4 +83,6 @@
 
 	putuchar('\n');
+
+	console_unlock();
 	return chars;
 }
@@ -91,5 +96,8 @@
 	};
 
-	return printf_core(fmt, &ps, ap);
+	console_lock();
+	int ret = printf_core(fmt, &ps, ap);
+	console_unlock();
+	return ret;
 }
 
