diff --git a/src/Quasar/PreludeExtras.hs b/src/Quasar/PreludeExtras.hs
index c1d1edd9d96be88482bf8d5e65792d9903e8ea30..9d9b6ad932c3688dd26264f8388b03b536aab71a 100644
--- a/src/Quasar/PreludeExtras.hs
+++ b/src/Quasar/PreludeExtras.hs
@@ -16,9 +16,7 @@ import Data.HashSet qualified as HS
 import Data.Hashable qualified as Hashable
 import Data.List qualified as List
 import Data.Maybe qualified as Maybe
-import GHC.Records.Compat (HasField, getField, setField)
 import GHC.Stack.Types qualified
-import GHC.TypeLits (Symbol)
 import Quasar.Utils.ExtraT
 
 io :: IO a -> IO a
diff --git a/test/Quasar/ResourceManagerSpec.hs b/test/Quasar/ResourceManagerSpec.hs
index 6ec68ee910379c7119caf5b043051594dc50430a..ab8445b2769253bd51c3b26afd612504feeb6482 100644
--- a/test/Quasar/ResourceManagerSpec.hs
+++ b/test/Quasar/ResourceManagerSpec.hs
@@ -65,7 +65,20 @@ spec = parallel $ do
             liftIO $ throwIO TestException
         \TestException -> True
 
+    it "handles an exception while disposing" $ io do
+      (`shouldThrow` \(_ :: CombinedException) -> True) do
+        withRootResourceManager do
+          registerDisposeAction $ throwIO TestException
+          liftIO $ threadDelay 100000
+
     it "passes an exception to the root resource manager" $ io do
+      (`shouldThrow` \(_ :: CombinedException) -> True) do
+        withRootResourceManager do
+          withSubResourceManagerM do
+            registerDisposeAction $ throwIO TestException
+            liftIO $ threadDelay 100000
+
+    it "passes an exception to the root resource manager when closing the inner resource manager first" $ io do
       (`shouldThrow` \(_ :: CombinedException) -> True) do
         withRootResourceManager do
           withSubResourceManagerM do