diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,10 @@
+0.5.0.4 (15 March 2014)
+-----------------------
+
+    - Update for `hint-0.4`
+	- Allow `diagrams-lib-1.1` and `diagrams-cairo-1.1`
+	- Allow `lens-4.0`
+
 0.5.0.3 (8 March 2014)
 ----------------------
 
diff --git a/diagrams-builder.cabal b/diagrams-builder.cabal
--- a/diagrams-builder.cabal
+++ b/diagrams-builder.cabal
@@ -1,5 +1,5 @@
 name:                diagrams-builder
-version:             0.5.0.3
+version:             0.5.0.4
 synopsis:            hint-based build service for the diagrams graphics EDSL.
 
 description:         @diagrams-builder@ provides backend-agnostic tools for
@@ -50,7 +50,7 @@
   build-depends:       base >=4.2 && < 4.8,
                        mtl >= 2.1 && < 2.2,
                        diagrams-lib >=0.6 && < 1.2,
-                       hint ==0.3.*,
+                       hint >= 0.4 && < 0.5,
                        directory,
                        filepath,
                        transformers >= 0.3 && < 0.4,
@@ -58,7 +58,8 @@
                        haskell-src-exts >= 1.14 && < 1.15,
                        cmdargs >= 0.6 && < 0.11,
                        lens >= 3.9 && < 4.1,
-                       hashable >= 1.1 && < 1.3
+                       hashable >= 1.1 && < 1.3,
+                       exceptions >= 0.3 && < 0.4
   hs-source-dirs:      src
   default-language:    Haskell2010
   other-extensions:    StandaloneDeriving,
@@ -96,10 +97,10 @@
                        filepath,
                        directory,
                        diagrams-builder,
-                       diagrams-lib >= 0.6 && < 1.1,
-                       diagrams-cairo >= 0.6 && < 1.1,
+                       diagrams-lib >= 0.6 && < 1.2,
+                       diagrams-cairo >= 0.6 && < 1.2,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 3.8 && < 3.11
+                       lens >= 3.8 && < 4.1
 
 executable diagrams-builder-svg
   main-is:             diagrams-builder-svg.hs
@@ -116,7 +117,7 @@
                        filepath,
                        directory,
                        diagrams-builder,
-                       diagrams-lib >= 0.6 && < 1.1,
+                       diagrams-lib >= 0.6 && < 1.2,
                        diagrams-svg >= 0.8.0.1 && < 1.1,
                        blaze-svg >= 0.3.3 && < 0.4,
                        bytestring >= 0.9.2 && < 0.11,
@@ -137,7 +138,7 @@
                        filepath,
                        directory,
                        diagrams-builder,
-                       diagrams-lib >= 0.6 && < 1.1,
+                       diagrams-lib >= 0.6 && < 1.2,
                        diagrams-postscript >= 0.6 && < 1.1,
                        cmdargs >= 0.6 && < 0.11,
-                       lens >= 3.8 && < 3.11
+                       lens >= 3.8 && < 4.1
diff --git a/src/Diagrams/Builder.hs b/src/Diagrams/Builder.hs
--- a/src/Diagrams/Builder.hs
+++ b/src/Diagrams/Builder.hs
@@ -45,7 +45,7 @@
 
 import           Control.Lens                        ((^.))
 import           Control.Monad                       (guard, mplus, mzero)
-import           Control.Monad.Error                 (catchError)
+import           Control.Monad.Catch                 (catchAll)
 import           Control.Monad.Trans.Maybe           (MaybeT, runMaybeT)
 import           Data.Hashable                       (Hashable (..))
 import           Data.List                           (foldl', nub)
@@ -138,7 +138,7 @@
     -- b v and IO (Diagram b v).  Take whichever one typechecks,
     -- running the IO action in the second case to produce a
     -- diagram.
-    d <- interpret dexp (as :: Diagram b v) `catchError` const (interpret dexp (as :: IO (Diagram b v)) >>= liftIO)
+    d <- interpret dexp (as :: Diagram b v) `catchAll` const (interpret dexp (as :: IO (Diagram b v)) >>= liftIO)
 
     -- Finally, call renderDia.
     return $ renderDia (backendToken bopts) (bopts ^. backendOpts) ((bopts ^. postProcess) d)
