Index: uspace/app/klog/klog.c
===================================================================
--- uspace/app/klog/klog.c	(revision b5d486bb5b32e2a00e0b41ecb32e242f40c06d5a)
+++ uspace/app/klog/klog.c	(revision 25bbaeafe7c7943b8afcc5bd50a1f16befced2cb)
@@ -44,4 +44,5 @@
 #include <io/klog.h>
 #include <sysinfo.h>
+#include <fibril_synch.h>
 
 #define NAME       "klog"
@@ -54,6 +55,12 @@
 static FILE *log;
 
+/* Serialize the output a bit. This will not avoid messed-up log completely
+   but chances for are pretty high (experimentally confirmed). */
+static FIBRIL_MUTEX_INITIALIZE(log_mutex);
+
 static void interrupt_received(ipc_callid_t callid, ipc_call_t *call)
 {
+	fibril_mutex_lock(&log_mutex);
+	
 	size_t klog_start = (size_t) IPC_GET_ARG1(*call);
 	size_t klog_len = (size_t) IPC_GET_ARG2(*call);
@@ -74,4 +81,6 @@
 		fsync(fileno(log));
 	}
+	
+	fibril_mutex_unlock(&log_mutex);
 }
 
