diff --git a/src/Control/Monad/Trans/Abort.hs b/src/Control/Monad/Trans/Abort.hs
--- a/src/Control/Monad/Trans/Abort.hs
+++ b/src/Control/Monad/Trans/Abort.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE UnicodeSyntax #-}
+{-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
@@ -19,14 +20,12 @@
 import Data.Functor.Bind.Trans
 import Data.Default
 import Control.Applicative
-import Control.Monad (ap, MonadPlus(..))
+import Control.Monad (liftM, ap, MonadPlus(..))
 import Control.Monad.Base
-import Control.Monad.Base.Control
 import Control.Monad.Fix
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.Control
 import Control.Monad.IO.Class
-import Control.Monad.IO.Control
 import Control.Failure
 
 newtype AbortT e μ α = AbortT { runAbortT ∷ μ (Either e α) }
@@ -88,13 +87,15 @@
   lift = AbortT . ap (return Right)
 
 instance MonadTransControl (AbortT e) where
-  liftControl f = lift $ f $ (return . AbortT . return =<<) . runAbortT
-
-instance MonadControlIO μ ⇒ MonadControlIO (AbortT e μ) where
-  liftControlIO = liftLiftControlBase liftControlIO
+  newtype StT (AbortT e) α = StAbort { unStAbort ∷ Either e α }
+  liftWith f = lift $ f $ liftM StAbort . runAbortT
+  restoreT   = AbortT . liftM unStAbort
 
 instance MonadBaseControl η μ ⇒ MonadBaseControl η (AbortT e μ) where
-  liftBaseControl = liftLiftControlBase liftBaseControl
+  newtype StM (AbortT e μ) α =
+    StMAbort { unStMAbort ∷ ComposeSt (AbortT e) μ α }
+  liftBaseWith = defaultLiftBaseWith StMAbort
+  restoreM     = defaultRestoreM unStMAbort
 
 instance Monad μ ⇒ Failure e (AbortT e μ) where
   failure = abort
diff --git a/src/Control/Monad/Trans/Finish.hs b/src/Control/Monad/Trans/Finish.hs
--- a/src/Control/Monad/Trans/Finish.hs
+++ b/src/Control/Monad/Trans/Finish.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE UnicodeSyntax #-}
+{-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
@@ -17,14 +18,12 @@
 import Data.Functor.Bind
 import Data.Functor.Bind.Trans
 import Control.Applicative
-import Control.Monad (ap)
+import Control.Monad (liftM, ap)
 import Control.Monad.Base
-import Control.Monad.Base.Control
 import Control.Monad.Fix
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.Control
 import Control.Monad.IO.Class
-import Control.Monad.IO.Control
 
 newtype FinishT f μ α = FinishT { runFinishT ∷ μ (Either f α) }
 
@@ -71,13 +70,15 @@
   lift = FinishT . ap (return Right)
 
 instance MonadTransControl (FinishT f) where
-  liftControl f = lift $ f $ (return . FinishT . return =<<) . runFinishT
-
-instance MonadControlIO μ ⇒ MonadControlIO (FinishT f μ) where
-  liftControlIO = liftLiftControlBase liftControlIO
+  newtype StT (FinishT f) α = StFinish { unStFinish ∷ Either f α }
+  liftWith f = lift $ f $ liftM StFinish . runFinishT
+  restoreT   = FinishT . liftM unStFinish
 
-instance MonadBaseControl η μ ⇒ MonadBaseControl η (FinishT f μ) where
-  liftBaseControl = liftLiftControlBase liftBaseControl
+instance MonadBaseControl η μ ⇒ MonadBaseControl η (FinishT e μ) where
+  newtype StM (FinishT e μ) α =
+    StMFinish { unStMFinish ∷ ComposeSt (FinishT e) μ α }
+  liftBaseWith = defaultLiftBaseWith StMFinish
+  restoreM     = defaultRestoreM unStMFinish
 
 runFinishT' ∷ Monad μ ⇒ FinishT α μ α → μ α
 runFinishT' m = runFinishT m >>= return . either id id
diff --git a/transformers-abort.cabal b/transformers-abort.cabal
--- a/transformers-abort.cabal
+++ b/transformers-abort.cabal
@@ -1,5 +1,5 @@
 Name: transformers-abort
-Version: 0.3
+Version: 0.4
 Category: Control
 Stability: experimental
 Synopsis: A better error monad transformer
@@ -27,12 +27,12 @@
   Build-Depends:
     base              >= 4 && < 5,
     transformers      >= 0.2,
-    transformers-base >= 0.3,
+    transformers-base >= 0.4,
     semigroupoids     >= 1.2,
     pointed           >= 2.0.1,
     data-default      >= 0.2,
     failure           >= 0.1,
-    monad-control     >= 0.2.0.2
+    monad-control     >= 0.3
   Hs-Source-Dirs: src
   GHC-Options: -Wall
   Exposed-Modules:
