diff --git a/library/SlaveThread.hs b/library/SlaveThread.hs
--- a/library/SlaveThread.hs
+++ b/library/SlaveThread.hs
@@ -90,7 +90,7 @@
         catch (void finalizer) $
           PartialHandler.totalizeRethrowingTo_ masterThread $ mempty
         -- Unregister from the global state,
-        -- thus informing the master of this thread's death.
+        -- thus informing the master of this thread's death:
         takeMVar registrationPass
         atomically $ Multimap.delete slaveThread masterThread slaves
     atomically $ Multimap.insert slaveThread masterThread slaves
@@ -105,7 +105,7 @@
 waitForSlavesToDie thread =
   atomically $ do
     null <- ListT.null $ Multimap.streamByKey thread slaves
-    when (not null) retry
+    unless null retry
 
 -- |
 -- A more efficient version of 'forkIO', 
diff --git a/slave-thread.cabal b/slave-thread.cabal
--- a/slave-thread.cabal
+++ b/slave-thread.cabal
@@ -1,9 +1,9 @@
 name:
   slave-thread
 version:
-  0.1.2
+  0.1.3
 synopsis:
-  A solution to ghost threads and silent exceptions
+  A principal solution to ghost threads and silent exceptions
 description:
   Vanilla thread management in Haskell is low level and 
   it does not approach the problems related to thread deaths.
@@ -103,8 +103,7 @@
     -- testing:
     HTF == 0.12.*,
     quickcheck-instances == 0.3.*,
-    QuickCheck == 2.7.*,
-    HUnit == 1.2.*,
+    QuickCheck >= 2.6 && < 2.8,
     -- general:
     SafeSemaphore == 0.10.*,
     base-prelude >= 0.1.3 && < 0.2,
