diff --git a/Makefile.pre.in b/Makefile.pre.in
index 6319eb837c3dbd..66d25b9465588f 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1007,7 +1007,7 @@ testall:	all platform
 		$(TESTRUNNER) -u all $(TESTOPTS)
 
 teststackless:	all platform
-		pushd Stackless/unittests; $(RUNSHARED) ../../$(BUILDPYTHON) -E -tt runAll.py; popd
+		$(TESTPYTHON) Stackless/unittests/runAll.py
 
 # Run the test suite for both architectures in a Universal build on OSX.
 # Must be run on an Intel box.
diff --git a/Stackless/changelog.txt b/Stackless/changelog.txt
index 412ef45f17ffed..cbd5982e11bb2e 100644
--- a/Stackless/changelog.txt
+++ b/Stackless/changelog.txt
@@ -9,6 +9,12 @@ What's New in Stackless 3.X.X?
 
 *Release date: 20XX-XX-XX*
 
+- https://bitbucket.org/stackless-dev/stackless/issues/99
+  On UNIX like systems you can use the command 
+  $ make teststackless
+  to run the Stackless unit tests. Previously the command required some non
+  POSIX commands.
+
 - https://bitbucket.org/stackless-dev/stackless/issues/97
   Fix the stack switching for optimized builds for all Unix-like architectures
   except amd64, where it was already OK. This change removes the "static"
diff --git a/Stackless/unittests/test_thread.py b/Stackless/unittests/test_thread.py
index 525d6cb7cfbb55..20bb0cf2a9b325 100644
--- a/Stackless/unittests/test_thread.py
+++ b/Stackless/unittests/test_thread.py
@@ -82,7 +82,8 @@ def linger(self):
 
     def join(self):
         self.shutdown.set()
-        return super(LingeringThread, self).join()
+        super(LingeringThread, self).join()
+        time.sleep(0.01)  # give the thread a chance to clean up
 
     def __enter__(self):
         pass
@@ -351,6 +352,7 @@ def test_tasklet_from_dead_thread(self):
         theThread, t = self.create_thread_task()
         self.assertTrue(t.alive)
         theThread.join()
+        time.sleep(0.01)  # give the thread a short time to clean up
         # now the tasklet should have been killed.
         self.assertFalse(t.alive)
 
@@ -360,6 +362,7 @@ def test_removed_tasklet_from_dead_thread(self):
         t.remove()
         self.assertFalse(t.scheduled)
         theThread.join()
+        time.sleep(0.01)  # give the thread a short time to clean up
         # now the tasklet should have been killed.
         self.assertFalse(t.alive)