diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 Monad-Finally
 =============
 
-[![Travis](https://img.shields.io/travis/mvv/monad-finally/master.svg)](https://travis-ci.org/mvv/monad-finally) [![Hackage](https://img.shields.io/hackage/v/monad-finally.svg)](http://hackage.haskell.org/package/monad-finally)
+[![Build](https://github.com/mvv/monad-finally/actions/workflows/ci.yml/badge.svg)](https://github.com/mvv/monad-finally/actions/workflows/ci.yml) [![Hackage](https://img.shields.io/hackage/v/monad-finally.svg)](http://hackage.haskell.org/package/monad-finally)
 
 This package provides a generalized version of `Control.Exception.finally`.
 The cleanup action is run not only on successful termination of the main
diff --git a/monad-finally.cabal b/monad-finally.cabal
--- a/monad-finally.cabal
+++ b/monad-finally.cabal
@@ -1,5 +1,5 @@
 Name: monad-finally
-Version: 0.1.2
+Version: 0.1.2.1
 Category: Control
 Stability: experimental
 Synopsis: Guard monadic computations with cleanup actions
@@ -23,9 +23,10 @@
   README.md
 
 Tested-With: GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2,
-             GHC==8.4.1
+             GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2,
+             GHC==9.2.7, GHC==9.4.5, GHC==9.6.1
 
-Cabal-Version: >= 1.6.0
+Cabal-Version: >= 1.10.0
 Build-Type: Simple
 
 Source-Repository head
@@ -33,12 +34,13 @@
   Location: https://github.com/mvv/monad-finally.git
 
 Library
-  Build-Depends: base >= 4.4 && < 5
-  Build-Depends: transformers        >= 0.2
+  Default-Language: Haskell2010
+  Build-Depends: base                >= 4.4 && < 5
+               , transformers        >= 0.2
                , transformers-compat >= 0.6.1
                , transformers-base   >= 0.4
                , transformers-abort  >= 0.6
-               , monad-abort-fd      >= 0.6.2
+               , monad-abort-fd      >= 0.7.0.1
                , monad-control       >= 1.0
   Hs-Source-Dirs: src
   GHC-Options: -Wall
diff --git a/src/Control/Monad/Exception.hs b/src/Control/Monad/Exception.hs
--- a/src/Control/Monad/Exception.hs
+++ b/src/Control/Monad/Exception.hs
@@ -3,6 +3,7 @@
 {-# LANGUAGE MagicHash #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE DefaultSignatures #-}
+{-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE ConstraintKinds #-}
@@ -68,8 +69,10 @@
 import Control.Monad.Trans.Abort hiding (abort, recover)
 import Control.Monad.Trans.Finish
 import Control.Monad.Trans.Maybe
+#if !MIN_VERSION_transformers(0,6,0)
 import Control.Monad.Trans.List
 import Control.Monad.Trans.Error
+#endif
 import Control.Monad.Trans.Except
 import Control.Monad.Trans.Reader
 import qualified Control.Monad.Trans.State.Lazy as L
@@ -229,10 +232,14 @@
   withMaskingState MaskedUninterruptible (IO io) = IO $ maskUninterruptible# io
 
 instance MonadMask μ ⇒ MonadMask (MaybeT μ)
+#if !MIN_VERSION_transformers(0,6,0)
 instance MonadMask μ ⇒ MonadMask (ListT μ)
+#endif
 instance MonadMask μ ⇒ MonadMask (AbortT e μ)
 instance MonadMask μ ⇒ MonadMask (FinishT β μ)
+#if !MIN_VERSION_transformers(0,6,0)
 instance (MonadMask μ, Error e) ⇒ MonadMask (ErrorT e μ)
+#endif
 instance MonadMask μ ⇒ MonadMask (ExceptT e μ)
 instance MonadMask μ ⇒ MonadMask (ReaderT r μ)
 instance MonadMask μ ⇒ MonadMask (L.StateT s μ)
diff --git a/src/Control/Monad/Finally.hs b/src/Control/Monad/Finally.hs
--- a/src/Control/Monad/Finally.hs
+++ b/src/Control/Monad/Finally.hs
@@ -25,7 +25,9 @@
 import Control.Applicative (Applicative(..), (<$>), (<$))
 import Control.Monad (join)
 import Control.Monad.Trans.Maybe
+#if !MIN_VERSION_transformers(0,6,0)
 import Control.Monad.Trans.Error
+#endif
 import Control.Monad.Trans.Except
 import Control.Monad.Trans.Reader
 import qualified Control.Monad.Trans.State.Lazy as L
@@ -136,6 +138,7 @@
                         (fmap join . mapM (runFinishT . m))
     return $ (,) <$> mr <*> rr
 
+#if !MIN_VERSION_transformers(0,6,0)
 instance (MonadFinally μ, Error e) ⇒ MonadFinally (ErrorT e μ) where
   finally' m f = ErrorT $ do
     (mr, fr) ← finally' (runErrorT m) (runErrorT . f . justRight)
@@ -147,6 +150,7 @@
                           Left e → const (return (Left e)))
                         (fmap join . mapM (runErrorT . m))
     return $ (,) <$> mr <*> rr
+#endif
 
 instance MonadFinally μ ⇒ MonadFinally (ExceptT e μ) where
   finally' m f = ExceptT $ do
