diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# Version 1.3.1
+
+* Instance `MonadError e m => MonadError e (DiT level path msg m)`
+
 # Version 1.3
 
 * The `MonadThrow` instance for `DiT` doesn't log exceptions automatically any
diff --git a/di-monad.cabal b/di-monad.cabal
--- a/di-monad.cabal
+++ b/di-monad.cabal
@@ -1,5 +1,5 @@
 name: di-monad
-version: 1.3
+version: 1.3.1
 author: Renzo Carbonara
 maintainer: renλren.zone
 copyright: Renzo Carbonara 2017-2018
diff --git a/lib/Di/Monad.hs b/lib/Di/Monad.hs
--- a/lib/Di/Monad.hs
+++ b/lib/Di/Monad.hs
@@ -63,7 +63,7 @@
 import Control.Concurrent.STM (STM, atomically)
 import qualified Control.Monad.Catch as Ex
 import Control.Monad.Cont (MonadCont, ContT(ContT))
-import Control.Monad.Except (ExceptT(ExceptT))
+import Control.Monad.Except (ExceptT(ExceptT), MonadError)
 import Control.Monad.Fail (MonadFail)
 import Control.Monad.Fix (MonadFix)
 import Control.Monad.IO.Class (MonadIO, liftIO)
@@ -111,7 +111,7 @@
   = DiT (ReaderT (Di level path msg, H STM m) m a)
   deriving (Functor, Applicative, Alternative, Monad, MonadIO,
             MonadFail, MonadFix, MonadZip, MonadPlus, MonadCont,
-            MonadState s, MonadWriter w)
+            MonadState s, MonadWriter w, MonadError e)
 
 -- | Build a 'DiT'.
 --
