diff --git a/hxt.cabal b/hxt.cabal
--- a/hxt.cabal
+++ b/hxt.cabal
@@ -1,6 +1,6 @@
 -- arch-tag: Haskell XML Toolbox main description file
 Name:           hxt
-Version:        9.3.1.9
+Version:        9.3.1.10
 Synopsis:       A collection of tools for processing XML with Haskell.
 Description:    The Haskell XML Toolbox bases on the ideas of HaXml and HXML,
                 but introduces a more general approach for processing XML with Haskell.
@@ -17,6 +17,8 @@
                 hxt-unicode contains encoding and decoding functions,
                 hxt-charproperties char properties for unicode and XML.
                 .
+                Changes from 9.3.1.9: lower bound of mtl dependency lowered to 2.0.1
+                .
                 Changes from 9.3.1.8: Bug in hread removed
                 .
                 Changes from 9.3.1.7: Foldable and Traversable instances for NTree added
@@ -205,7 +207,7 @@
                 filepath   >= 1     && < 2,
                 parsec     >= 2.1   && < 4,
                 HUnit      >= 1.2   && < 2,
-                mtl        >= 2.2.1 && < 3,
+                mtl        >= 2.0.1 && < 3,
                 deepseq    >= 1.1   && < 2,
                 bytestring >= 0.9   && < 1,
                 binary     >= 0.5   && < 1,
diff --git a/src/Text/XML/HXT/Arrow/Pickle/Xml.hs b/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
--- a/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
+++ b/src/Text/XML/HXT/Arrow/Pickle/Xml.hs
@@ -1,4 +1,5 @@
 {-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeSynonymInstances  #-}
 
@@ -53,7 +54,11 @@
 import           Control.Arrow.ArrowList
 import           Control.Arrow.ListArrows
 import           Control.Monad                    ()
+#if MIN_VERSION_mtl(2,2,0)
 import           Control.Monad.Except             (MonadError (..))
+#else
+import           Control.Monad.Error              (MonadError (..))
+#endif
 import           Control.Monad.State              (MonadState (..), gets,
                                                    modify)
 
@@ -437,7 +442,7 @@
 -- | combine tow picklers with a choice
 --
 -- Run two picklers in sequence like with xpSeq.
--- When during unpickling the first one fails,
+-- If during unpickling the first one fails,
 -- an alternative pickler (first argument) is applied.
 -- This pickler is only used as combinator for unpickling.
 
