diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index c9f31aa814a549bea9bff967e8e923204f8f1d7c..694399bbda6e83931a6272ec2e8aa2c5b7ac0b14 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -197,7 +197,7 @@ withLinkedExceptionHandler parentExceptionHandler action = do
   mask \unmask ->
     do
       bracket
-        do liftIO $ forkIOWithUnmask $ cancelThread mainThreadId
+        do liftIO $ forkIOWithUnmask \unmask -> cancelThread mainThreadId unmask
         do \cancelThreadId -> liftIO $ throwTo cancelThreadId CancelHelper
         do \_ -> unmask $ action exceptionHandler
     `catch`