diff --git a/SConstruct b/SConstruct
index df81facb8435e987987320d907b2ff80d234710f..fb783eccf1778592e8be8ffc18a184f4de204e9e 100644
--- a/SConstruct
+++ b/SConstruct
@@ -242,7 +242,7 @@ PhonyTarget(env, 'fixlinks', [
     'python doclib/fix-links.py -v -s .svn -s linklint -s debian linklint/errorX.txt linklint/errorAX.txt',
 ])
 
-PhonyTarget(env, 'prepare', [])
+PhonyTarget(env, 'prepare', [ 'true' ])
 
 PhonyTarget(env, 'valgrind', [
     'find -name .test.bin | while read test; do echo; echo "Running $$test"; echo; valgrind --tool=memcheck --error-exitcode=99 --suppressions=valgrind.sup $$test $BOOSTTESTARGS; [ $$? -ne 99 ] || exit 1; done'
diff --git a/senfscons/CompileCheck.py b/senfscons/CompileCheck.py
index f1037f672257ba816529ef2bc39565a560bf1469..95358a112897d3f0ed85c33fad1931e5bc8a9a5f 100644
--- a/senfscons/CompileCheck.py
+++ b/senfscons/CompileCheck.py
@@ -1,5 +1,5 @@
 import os, os.path, sys
-from cStringIO import StringIO
+import tempfile
 from SCons.Script import *
 import SCons.Scanner.C
 
@@ -20,13 +20,14 @@ def CompileCheck(target, source, env):
     tests = scanTests(file(source[0].abspath))
     cenv = env.Clone()
     cenv.Append( CPPDEFINES = { 'COMPILE_CHECK': '' } )
-    out = StringIO()
+    out = tempfile.TemporaryFile()
     cenv['SPAWN'] = lambda sh, escape, cmd, args, env, pspawn=cenv['PSPAWN'], out=out: \
                     pspawn(sh, escape, cmd, args, env, out, out)
     Action('$CXXCOM').execute(target, source, cenv)
     passedTests = {}
     delay_name = None
-    for error in out.getvalue().splitlines():
+    out.seek(0)
+    for error in out.read().splitlines():
         elts = error.split(':',2)
         if len(elts) != 3 : continue
         filename, line, message = elts
diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py
index 8fd75038d457b58d3ce2b0529d7e48c8aeb815a5..58a9841460aedeb676a6f16a8028db6a2e1865e0 100644
--- a/senfscons/SENFSCons.py
+++ b/senfscons/SENFSCons.py
@@ -367,7 +367,7 @@ def Test(env, sources, LIBS = [], OBJECTS = []):
     if compileTestSources:
         test.extend(env.CompileCheck(source = compileTestSources))
     env.Alias('all_tests', test)
-    env.Command(env.File('test'), test, [])
+    env.Command(env.File('test'), test, [ 'true' ])
     #env.Alias(env.File('test'), test)
     
 
@@ -422,7 +422,7 @@ def Objects(env, sources, testSources = None, OBJECTS = []):
         # Hmm ... here I'd like to use an Alias instead of a file
         # however the alias does not seem to live in the subdirectory
         # which breaks 'scons -u test'
-        env.Command(env.File('test'), test, [])
+        env.Command(env.File('test'), test, [ 'true' ])
         #env.Alias(env.File('test'), test)
 
     return objects