diff --git a/Control/Monad/RWS/CPS.hs b/Control/Monad/RWS/CPS.hs
--- a/Control/Monad/RWS/CPS.hs
+++ b/Control/Monad/RWS/CPS.hs
@@ -1,4 +1,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.RWS.CPS
@@ -36,7 +39,6 @@
   execRWST,
   mapRWST,
   withRWST,
-  -- * Strict Reader-writer-state monads
   module X
 ) where
 
@@ -46,26 +48,32 @@
 import Control.Monad.Trans as X
 import Data.Monoid as X
 
-import Control.Monad.Trans.RWS.CPS hiding (censor, tell, writer, listen, pass, ask,
-                                           local, reader, get, put, state, listens,
-                                           asks, modify, gets)
+import Control.Monad.Cont.Class
+import Control.Monad.Error.Class
+import Control.Monad.Trans.RWS.CPS
 import qualified Control.Monad.Trans.RWS.CPS as CPS
 
--- Orphan instance
+-- Orphan instances
+
 instance (Monoid w, Monad m) => MonadWriter w (RWST r w s m) where
-  tell = CPS.tell
   writer = CPS.writer
+  tell = CPS.tell
   listen = CPS.listen
   pass = CPS.pass
 
--- Orphan instance
 instance Monad m => MonadReader r (RWST r w s m) where
   ask = CPS.ask
   local = CPS.local
   reader = CPS.reader
 
--- Orphan instance
 instance Monad m => MonadState s (RWST r w s m) where
   get = CPS.get
   put = CPS.put
   state = CPS.state
+
+instance MonadError e m => MonadError e (RWST r w s m) where
+  throwError = lift . throwError
+  catchError = CPS.liftCatch catchError
+
+instance MonadCont m => MonadCont (RWST r w s m) where
+  callCC = CPS.liftCallCC callCC
diff --git a/Control/Monad/Writer/CPS.hs b/Control/Monad/Writer/CPS.hs
--- a/Control/Monad/Writer/CPS.hs
+++ b/Control/Monad/Writer/CPS.hs
@@ -1,4 +1,7 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.Writer.CPS
@@ -40,11 +43,22 @@
 import Control.Monad.Writer.Class as X
 import Data.Monoid as X
 
-import Control.Monad.Trans.Writer.CPS hiding (writer, listen, pass)
+import Control.Monad.Cont.Class
+import Control.Monad.Error.Class
+import Control.Monad.Trans.Writer.CPS
 import qualified Control.Monad.Trans.Writer.CPS as CPS
 
--- Orphan instance
-instance (Monoid w, Monad m) => MonadWriter w (CPS.WriterT w m) where
+-- Orphan instances
+
+instance (Monoid w, Monad m) => MonadWriter w (WriterT w m) where
   writer = CPS.writer
+  tell = CPS.tell
   listen = CPS.listen
   pass = CPS.pass
+
+instance MonadError e m => MonadError e (WriterT w m) where
+  throwError = lift . throwError
+  catchError = CPS.liftCatch catchError
+
+instance MonadCont m => MonadCont (WriterT w m) where
+  callCC = CPS.liftCallCC callCC
diff --git a/writer-cps-mtl.cabal b/writer-cps-mtl.cabal
--- a/writer-cps-mtl.cabal
+++ b/writer-cps-mtl.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.14.1.
+-- This file has been generated from package.yaml by hpack version 0.15.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           writer-cps-mtl
-version:        0.1.0.2
+version:        0.1.1.0
 cabal-version:  >= 1.10
 license:        BSD3
 license-file:   LICENSE
@@ -15,7 +15,7 @@
 synopsis:       MonadWriter orphan instances for writer-cps-transformers
 homepage:       https://github.com/minad/writer-cps-mtl#readme
 bug-reports:    https://github.com/minad/writer-cps-mtl/issues
-description:    The WriterT and RWST monad transformers provided by writer-cps-transformers are written in continuation passing style and avoid the space-leak problem of the traditional Control.Monad.Trans.Writer.Strict/Lazy. See also (<https://hackage.haskell.org/package/writer-cps-transformers>).
+description:    The WriterT and RWST monad transformers provided by writer-cps-transformers are written in continuation passing style and avoid the space-leak problem of the traditional Control.Monad.Trans.Writer.Strict and Control.Monad.Trans.Writer.Lazy. See also (<http://hackage.haskell.org/package/writer-cps-transformers>).
 build-type:     Simple
 
 source-repository head
@@ -25,13 +25,12 @@
 library
   hs-source-dirs:
       .
-  default-extensions: MultiParamTypeClasses FunctionalDependencies FlexibleInstances
   ghc-options: -Wall
   build-depends:
       base < 6
     , transformers >= 0.4 && < 0.6
     , mtl >= 2.2 && < 2.4
-    , writer-cps-transformers >= 0.1 && < 0.3
+    , writer-cps-transformers >= 0.1.1 && < 0.3
   exposed-modules:
       Control.Monad.RWS.CPS
       Control.Monad.Writer.CPS
