Index: kernel/generic/src/printf/vprintf.c
===================================================================
--- kernel/generic/src/printf/vprintf.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/generic/src/printf/vprintf.c	(revision 96a2e45d41bf3367cd7ec049870161e948f7515e)
@@ -63,5 +63,5 @@
 	struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL};
 	
-	int irqpri = interrupts_disable();
+	ipl_t ipl = interrupts_disable();
 	spinlock_lock(&printf_lock);
 	
@@ -69,5 +69,5 @@
 	
 	spinlock_unlock(&printf_lock);
-	interrupts_restore(irqpri);
+	interrupts_restore(ipl);
 	
 	return ret;
Index: kernel/generic/src/syscall/syscall.c
===================================================================
--- kernel/generic/src/syscall/syscall.c	(revision 242534980b6844190766f442347d98be346cd398)
+++ kernel/generic/src/syscall/syscall.c	(revision 96a2e45d41bf3367cd7ec049870161e948f7515e)
@@ -63,5 +63,4 @@
 static unative_t sys_klog(int fd, const void * buf, size_t count) 
 {
-	size_t i;
 	char *data;
 	int rc;
@@ -71,5 +70,5 @@
 	
 	if (count > 0) {
-		data = (char *) malloc(count, 0);
+		data = (char *) malloc(count + 1, 0);
 		if (!data)
 			return ENOMEM;
@@ -80,7 +79,7 @@
 			return rc;
 		}
-	
-		for (i = 0; i < count; i++)
-			putchar(data[i]);
+		data[count] = 0;
+		
+		printf("%s", data);
 		free(data);
 	} else
