Index: kernel/generic/include/interrupt.h
===================================================================
--- kernel/generic/include/interrupt.h	(revision 8486c070d3e8193fcd8774597aa3c3438d3ba2c9)
+++ kernel/generic/include/interrupt.h	(revision 4fc93d5494fe531c5527e5641a67447f42cf2587)
@@ -38,4 +38,5 @@
 #include <arch/interrupt.h>
 #include <print.h>
+#include <stdarg.h>
 #include <typedefs.h>
 #include <proc/task.h>
@@ -58,4 +59,5 @@
 extern exc_table_t exc_table[];
 
+extern void fault_from_uspace(istate_t *, const char *, ...);
 extern void fault_if_from_uspace(istate_t *, const char *, ...)
     PRINTF_ATTRIBUTE(2, 3);
Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision 8486c070d3e8193fcd8774597aa3c3438d3ba2c9)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 4fc93d5494fe531c5527e5641a67447f42cf2587)
@@ -50,4 +50,5 @@
 #include <panic.h>
 #include <print.h>
+#include <stdarg.h>
 #include <symtab.h>
 #include <proc/thread.h>
@@ -165,12 +166,6 @@
 }
 
-/** Terminate thread and task if exception came from userspace.
- *
- */
-NO_TRACE void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
-{
-	if (!istate_from_uspace(istate))
-		return;
-	
+static NO_TRACE void fault_from_uspace_core(istate_t *istate, const char *fmt, va_list args)
+{
 	printf("Task %s (%" PRIu64 ") killed due to an exception at "
 	    "program counter %p.\n", TASK->name, TASK->taskid,
@@ -181,12 +176,34 @@
 	
 	printf("Kill message: ");
+	vprintf(fmt, args);
+	printf("\n");
+	
+	task_kill_self(true);
+}
+
+/** Terminate thread and task after the exception came from userspace.
+ *
+ */
+NO_TRACE void fault_from_uspace(istate_t *istate, const char *fmt, ...)
+{
+	va_list args;
+
+	va_start(args, fmt);
+	fault_from_uspace_core(istate, fmt, args);
+	va_end(args);
+}
+
+/** Terminate thread and task if exception came from userspace.
+ *
+ */
+NO_TRACE void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
+{
+	if (!istate_from_uspace(istate))
+		return;
 	
 	va_list args;
 	va_start(args, fmt);
-	vprintf(fmt, args);
+	fault_from_uspace_core(istate, fmt, args);
 	va_end(args);
-	printf("\n");
-	
-	task_kill_self(true);
 }
 
