diff --git a/src/Quasar/ResourceManager.hs b/src/Quasar/ResourceManager.hs
index 967ff0a6502ad31da466d6b50022ea52ece4ac63..d455e73479f0e80c415a55874fc37db830229773 100644
--- a/src/Quasar/ResourceManager.hs
+++ b/src/Quasar/ResourceManager.hs
@@ -93,7 +93,7 @@ instance IsResourceManager ResourceManager where
   -- TODO delegate to parent
   throwToResourceManager _ ex = hPutStrLn stderr $ displayException ex
 
-class (MonadAwait m, MonadMask m, MonadIO m) => MonadResourceManager m where
+class (MonadAwait m, MonadMask m, MonadIO m, MonadFix m) => MonadResourceManager m where
   -- | Get the underlying resource manager.
   askResourceManager :: m ResourceManager
 
@@ -116,7 +116,7 @@ withSubResourceManagerM action =
   bracket newResourceManager (await <=< dispose) \scope -> localResourceManager scope action
 
 
-instance (MonadAwait m, MonadMask m, MonadIO m) => MonadResourceManager (ReaderT ResourceManager m) where
+instance (MonadAwait m, MonadMask m, MonadIO m, MonadFix m) => MonadResourceManager (ReaderT ResourceManager m) where
   localResourceManager resourceManager = local (const (toResourceManager resourceManager))
 
   askResourceManager = ask