diff --git a/Data/XCB/FromXML.hs b/Data/XCB/FromXML.hs
--- a/Data/XCB/FromXML.hs
+++ b/Data/XCB/FromXML.hs
@@ -15,6 +15,7 @@
 --
 -- There is no provision for preserving the event copy and error copy
 -- declarations - the copies are handled during parsing.
+{-# LANGUAGE CPP #-}
 module Data.XCB.FromXML(fromFiles
                        ,fromStrings
                        ) where
@@ -30,7 +31,9 @@
 
 import Control.Monad (MonadPlus (mzero, mplus), guard, liftM, liftM2)
 import Control.Monad.Reader (ReaderT, runReaderT, ask, lift, withReaderT)
-
+#if __GLASGOW_HASKELL__ < 900
+import Control.Monad.Fail (MonadFail)
+#endif
 import System.IO (openFile, IOMode (ReadMode), hSetEncoding, utf8, hGetContents)
 
 -- |Process the listed XML files.
diff --git a/xcb-types.cabal b/xcb-types.cabal
--- a/xcb-types.cabal
+++ b/xcb-types.cabal
@@ -1,5 +1,5 @@
 Name:         xcb-types
-Version:      0.13.0
+Version:      0.14.0
 Cabal-Version:  >= 1.10
 Synopsis:     Parses XML files used by the XCB project
 Description:   This package provides types which mirror the structures
@@ -17,7 +17,7 @@
   to learn XSLT, this package should help.
   .
   This version of xcb-types is intended to fully parse the X Protocol
-  description version 1.13.
+  description version 1.16.
 
 License:      BSD3
 License-file: LICENSE
@@ -33,7 +33,7 @@
  Build-depends: base == 4.*,
                 xml == 1.3.*,
                 pretty == 1.0.* || == 1.1.*,
-                mtl >= 2.0 && < 2.3,
+                mtl >= 2.0 && < 2.4,
                 containers >= 0.5
  Exposed-modules: Data.XCB,
                   Data.XCB.Types,
