diff --git a/library/SlaveThread.hs b/library/SlaveThread.hs
--- a/library/SlaveThread.hs
+++ b/library/SlaveThread.hs
@@ -51,7 +51,7 @@
 import GHC.Exts (Int(I#), fork#, forkOn#)
 import GHC.IO (IO(IO))
 import System.IO.Unsafe
-import qualified DeferredFolds.UnfoldM as UnfoldM
+import qualified DeferredFolds.UnfoldlM as UnfoldlM
 import qualified PartialHandler
 import qualified StmContainers.Multimap as Multimap
 import qualified Control.Foldl as Foldl
@@ -108,13 +108,13 @@
 
 killSlaves :: ThreadId -> IO ()
 killSlaves thread = do
-  threads <- atomically (UnfoldM.foldM (Foldl.generalize Foldl.revList) (Multimap.unfoldMByKey thread slaves))
+  threads <- atomically (UnfoldlM.foldM (Foldl.generalize Foldl.revList) (Multimap.unfoldMByKey thread slaves))
   traverse_ killThread threads
 
 waitForSlavesToDie :: ThreadId -> IO ()
 waitForSlavesToDie thread =
   atomically $ do
-    null <- UnfoldM.null $ Multimap.unfoldMByKey thread slaves
+    null <- UnfoldlM.null $ Multimap.unfoldMByKey thread slaves
     unless null retry
 
 -- |
diff --git a/slave-thread.cabal b/slave-thread.cabal
--- a/slave-thread.cabal
+++ b/slave-thread.cabal
@@ -1,7 +1,7 @@
 name:
   slave-thread
 version:
-  1.0.2.1
+  1.0.2.2
 synopsis:
   A fundamental solution to ghost threads and silent exceptions
 description:
@@ -75,11 +75,11 @@
     SlaveThread
   build-depends:
     base >=4.6 && <5,
-    deferred-folds >=0.6.7 && <0.7,
+    deferred-folds >=0.9 && <0.10,
     foldl >=1 && <2,
     mmorph >=1.0.4 && <2,
     partial-handler >=1 && <2,
-    stm-containers >=1 && <1.1,
+    stm-containers >=1.1 && <1.2,
     transformers >=0.5 && <0.6
 
 test-suite test
