Index: uspace/libc/arch/sparc64/src/thread_entry.s
===================================================================
--- uspace/libc/arch/sparc64/src/thread_entry.s	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/libc/arch/sparc64/src/thread_entry.s	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -35,5 +35,5 @@
 #
 __thread_entry:
-	sethi %hi(_gp), %l7	
+	sethi %hi(_gp), %l7
 	call __thread_main		! %o0 contains address of uarg
 	or %l7, %lo(_gp), %l7
Index: uspace/libc/generic/io/printf_core.c
===================================================================
--- uspace/libc/generic/io/printf_core.c	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/libc/generic/io/printf_core.c	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -41,4 +41,5 @@
 #include <ctype.h>
 #include <string.h>
+#include <async.h>	/* for pseudo thread serialization */
 
 #define __PRINTF_FLAG_PREFIX		0x00000001	/**< show prefixes 0x or 0*/
@@ -443,4 +444,7 @@
 	int width, precision;
 	uint64_t flags;
+	
+	/* Don't let other pseudo threads interfere. */
+	async_serialize_start();
 	
 	counter = 0;
@@ -675,6 +679,8 @@
 	}
 	
+	async_serialize_end();
 	return counter;
 minus_out:
+	async_serialize_end();
 	return -counter;
 }
Index: uspace/libc/generic/io/vprintf.c
===================================================================
--- uspace/libc/generic/io/vprintf.c	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/libc/generic/io/vprintf.c	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -37,7 +37,4 @@
 #include <unistd.h>
 #include <io/printf_core.h>
-#include <futex.h>
-
-atomic_t printf_futex = FUTEX_INITIALIZER;
 
 static int vprintf_write(const char *str, size_t count, void *unused)
@@ -55,7 +52,5 @@
 	struct printf_spec ps = {(int(*)(void *, size_t, void *)) vprintf_write, NULL};
 	
-	futex_down(&printf_futex);
 	int ret = printf_core(fmt, &ps, ap);
-	futex_up(&printf_futex);
 	
 	return ret;
Index: uspace/tester/fault/fault1.c
===================================================================
--- uspace/tester/fault/fault1.c	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/tester/fault/fault1.c	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -34,4 +34,4 @@
 	((int *)(0))[1] = 0;
 	
-	return "Written to NULL";
+	return "Survived write to NULL";
 }
Index: uspace/tester/fault/fault2.c
===================================================================
--- uspace/tester/fault/fault2.c	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/tester/fault/fault2.c	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -37,4 +37,4 @@
 	var1 = *((int *) (((char *) (&var)) + 1));
 	
-	return "Done unaligned read";
+	return "Survived unaligned read";
 }
Index: uspace/tester/thread/thread1.c
===================================================================
--- uspace/tester/thread/thread1.c	(revision 201abde2f6d30f23f1aab2b46d1a55da556278f1)
+++ uspace/tester/thread/thread1.c	(revision de33dab3d6e266b32bfcf983b683fc6d18b2ac72)
@@ -34,4 +34,5 @@
 #include <stdio.h>
 #include <unistd.h>
+#include <futex.h>
 #include "../tester.h"
 
@@ -40,4 +41,6 @@
 static bool sh_quiet;
 
+static atomic_t srlz = FUTEX_INITIALIZER;
+
 static void threadtest(void *data)
 {
@@ -45,6 +48,9 @@
 
 	while (atomic_get(&finish)) {
-		if (!sh_quiet)
+		if (!sh_quiet) {
+			futex_down(&srlz);
 			printf("%llu ", thread_get_id());
+			futex_up(&srlz);
+		}
 		usleep(100000);
 	}
@@ -69,6 +75,9 @@
 	}
 	
-	if (!quiet)
+	if (!quiet) {
+		futex_down(&srlz);
 		printf("Running threads for 10 seconds...\n");
+		futex_up(&srlz);
+	}
 	sleep(10);
 	
