diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+5.0.4 [2022.05.07]
+------------------
+* Allow building with `transformers-0.6.*`.
+
 5.0.3 [2021.11.01]
 ------------------
 * Allow building with `base-4.16` (GHC 9.2).
diff --git a/pointed.cabal b/pointed.cabal
--- a/pointed.cabal
+++ b/pointed.cabal
@@ -1,6 +1,6 @@
 name:          pointed
 category:      Data
-version:       5.0.3
+version:       5.0.4
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
@@ -99,10 +99,10 @@
     build-depends: tagged >= 0.5 && < 1
 
   if flag(transformers)
-    build-depends: transformers >= 0.2 && < 0.6, transformers-compat >= 0.3 && < 1
+    build-depends: transformers >= 0.2 && < 0.7, transformers-compat >= 0.3 && < 1
 
   if flag(unordered-containers)
-    build-depends: hashable >= 1.1 && < 1.4, unordered-containers >= 0.2 && < 0.3
+    build-depends: hashable >= 1.1 && < 1.5, unordered-containers >= 0.2 && < 0.3
 
   exposed-modules:
     Data.Pointed
diff --git a/src/Data/Pointed.hs b/src/Data/Pointed.hs
--- a/src/Data/Pointed.hs
+++ b/src/Data/Pointed.hs
@@ -68,12 +68,15 @@
 import Control.Applicative.Backwards
 import Control.Applicative.Lift
 import Control.Monad.Trans.Cont
-import Control.Monad.Trans.Error
 import Control.Monad.Trans.Except
-import Control.Monad.Trans.List
 import Control.Monad.Trans.Maybe
 import Control.Monad.Trans.Identity
 import Control.Monad.Trans.Reader
+
+# if !(MIN_VERSION_transformers(0,6,0))
+import Control.Monad.Trans.Error
+import Control.Monad.Trans.List
+# endif
 #endif
 
 #if defined(MIN_VERSION_tagged) || (MIN_VERSION_base(4,7,0))
@@ -255,18 +258,12 @@
 instance Pointed (ContT r m) where
   point a = ContT ($ a)
 
-instance Pointed m => Pointed (ErrorT e m) where
-  point = ErrorT . point . Right
-
 instance Pointed m => Pointed (ExceptT e m) where
   point = ExceptT . point . Right
 
 instance Pointed m => Pointed (IdentityT m) where
   point = IdentityT . point
 
-instance Pointed m => Pointed (ListT m) where
-  point = ListT . point . point
-
 instance Pointed m => Pointed (MaybeT m) where
   point = MaybeT . point . point
 
@@ -302,6 +299,14 @@
 
 instance Pointed (Lift f) where
   point = Pure
+
+# if !(MIN_VERSION_transformers(0,6,0))
+instance Pointed m => Pointed (ErrorT e m) where
+  point = ErrorT . point . Right
+
+instance Pointed m => Pointed (ListT m) where
+  point = ListT . point . point
+# endif
 #endif
 
 #if defined(MIN_VERSION_unordered_containers)
