diff --git a/Control/Monad/Trans/Journal.hs b/Control/Monad/Trans/Journal.hs
--- a/Control/Monad/Trans/Journal.hs
+++ b/Control/Monad/Trans/Journal.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE GeneralizedNewtypeDeriving, TypeFamilies, UndecidableInstances #-}
 {-# OPTIONS_HADDOCK prune #-}
 
-
 {- |
 Module      :  Control.Monad.Trans.Journal
 Description :  Journal monad transformer
@@ -26,25 +25,31 @@
 import Control.Applicative ( Applicative, Alternative )
 import Control.Monad ( MonadPlus, liftM )
 import Control.Monad.Base ( MonadBase, liftBase, liftBaseDefault )
+import Control.Monad.Except ( MonadError(..) )
 import Control.Monad.Journal.Class
 import Control.Monad.Reader.Class ( MonadReader(..) )
 import Control.Monad.State.Class  ( MonadState )
-import qualified Control.Monad.State.Class as MS ( MonadState(..) )
 import Control.Monad.Trans ( MonadTrans, MonadIO, lift )
-import Control.Monad.Trans.State --( StateT, get, modify, put, runStateT, mapStateT )
-import Control.Monad.Trans.Control ( MonadTransControl(..), MonadBaseControl(..), ComposeSt, defaultLiftBaseWith, defaultRestoreM )
+import Control.Monad.Trans.State ( StateT(..), evalStateT, execStateT, get
+                                 , modify, put, runStateT )
+import Control.Monad.Trans.Control ( MonadTransControl(..)
+                                   , MonadBaseControl(..), ComposeSt
+                                   , defaultLiftBaseWith, defaultRestoreM )
 import Control.Monad.Writer.Class ( MonadWriter(..) )
 import Data.Monoid ( Monoid(..) )
+import qualified Control.Monad.State.Class as MS ( MonadState(..) )
 
+
 newtype JournalT w m a = JournalT (StateT w m a)
     deriving ( Applicative
              , Alternative
              , Functor
              , Monad
-             , MonadTrans
+             , MonadError e
              , MonadIO
              , MonadPlus
              , MonadReader r
+             , MonadTrans
              , MonadWriter w'
              )
 
@@ -57,7 +62,6 @@
     get = lift MS.get
     put = lift . MS.put
     state = lift . MS.state
-
 
 instance Monoid w => MonadTransControl (JournalT w) where
     newtype StT (JournalT w) a = StJournal {unStJournal :: (a, w)}
diff --git a/monad-journal.cabal b/monad-journal.cabal
--- a/monad-journal.cabal
+++ b/monad-journal.cabal
@@ -1,6 +1,6 @@
 name:                monad-journal
 license:             PublicDomain
-version:             0.2.3.2
+version:             0.2.4
 synopsis:            Pure logger typeclass and monad transformer
 description:         This package provides a typeclass for logging in
                      pure code, or more generally, in any kind of
@@ -22,6 +22,8 @@
                          , MultiParamTypeClasses
   other-extensions:        FunctionalDependencies
                          , GeneralizedNewtypeDeriving
+                         , TypeFamilies
+                         , UndecidableInstances
   exposed-modules:         Control.Monad.Journal
                          , Control.Monad.Journal.Class
                          , Control.Monad.Trans.Journal
