diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+0.2.12
+======
+
+*   Added support for transformers-0.3.0.0. This changes allows usage
+    of configuration-tools along with packages that depend on ghc, which
+    in turn depends on transformers-0.3.0.0.
+
 0.2.11
 ======
 
diff --git a/configuration-tools.cabal b/configuration-tools.cabal
--- a/configuration-tools.cabal
+++ b/configuration-tools.cabal
@@ -3,7 +3,7 @@
 -- ------------------------------------------------------ --
 
 Name:                configuration-tools
-Version:             0.2.11
+Version:             0.2.12
 Synopsis:            Tools for specifying and parsing configurations
 description:
     Tools for specifying and parsing configurations
@@ -46,6 +46,7 @@
 
 extra-source-files:
     constraints
+    constraints.old-transformers
 
 source-repository head
     type: git
@@ -54,13 +55,26 @@
 source-repository this
     type: git
     location: https://github.com/alephcloud/hs-configuration-tools.git
-    tag: 0.2.11
+    tag: 0.2.12
 
 flag remote-configs
     Description: enable loading of configuration files from HTTP URLs
     Default: True
     Manual: True
 
+flag old-transformers
+    Description: use old transformers
+    Default: False
+    Manual: False
+
+-- remove this as soon as optparse-applicative removes the upper bound
+-- on transformers-compat. cabal should realy drop support for upper
+-- bounds on dependencies of libraries...
+flag compat-three
+    Description: use transformers-compat 0.3.*
+    Default: False
+    Manual: False
+
 Library
     hs-source-dirs: src
     default-language: Haskell2010
@@ -94,16 +108,32 @@
         directory >= 1.2.1.0,
         dlist >= 0.7.1,
         errors >= 1.4.3,
-        mtl >= 2.2,
         network-uri >= 2.6.0.1,
         optparse-applicative >= 0.10,
         process >= 1.2.0.0,
         text >= 1.0,
-        transformers >= 0.3.0.0,
         unordered-containers >= 0.2.4.0,
         yaml >= 0.8.8.3,
         profunctors >= 4.0.4
 
+    if flag(old-transformers)
+        if flag(compat-three)
+            build-depends:
+                mtl >= 2.1,
+                mtl-compat < 0.2,
+                transformers >= 0.3 && < 0.4,
+                transformers-compat >= 0.3 && < 0.4
+        else
+            build-depends:
+                mtl >= 2.1,
+                mtl-compat >= 0.2,
+                transformers >= 0.3 && < 0.4,
+                transformers-compat >= 0.4
+    else
+        build-depends:
+            mtl >= 2.2,
+            transformers >= 0.4
+
     if flag(remote-configs)
         build-depends:
             base64-bytestring >= 1.0,
@@ -143,10 +173,24 @@
         Cabal >= 1.18,
         configuration-tools,
         errors >= 1.4.3,
-        mtl >= 2.2,
         text >= 1.0,
         unordered-containers >= 0.2.4.0,
         yaml >= 0.8.8.3
+
+    if flag(old-transformers)
+        if flag(compat-three)
+            build-depends:
+                mtl >= 2.1 && < 2.2,
+                mtl-compat < 0.2,
+                transformers-compat >= 0.3 && < 0.4
+        else
+            build-depends:
+                mtl >= 2.1,
+                mtl-compat >= 0.2,
+                transformers-compat >= 0.4
+    else
+        build-depends:
+            mtl >= 2.2
 
     if flag(remote-configs)
         build-depends:
diff --git a/constraints b/constraints
--- a/constraints
+++ b/constraints
@@ -1,5 +1,5 @@
-constraints: Cabal ==1.22.0.0,
-             MonadRandom ==0.3,
+constraints: Cabal ==1.18.1.3,
+             MonadRandom ==0.3.0.1,
              aeson ==0.8.0.2,
              ansi-terminal ==0.6.2.1,
              ansi-wl-pprint ==0.6.7.1,
@@ -7,19 +7,18 @@
              asn1-encoding ==0.9.0,
              asn1-parse ==0.9.0,
              asn1-types ==0.3.0,
-             async ==2.0.1.6,
+             async ==2.0.2,
              attoparsec ==0.12.1.2,
              base ==4.7.0.1,
              base-unicode-symbols ==0.2.2.4,
              base64-bytestring ==1.0.0.1,
-             bifunctors ==4.1.1.1,
-             binary ==0.7.1.0,
+             bifunctors ==4.2,
              blaze-builder ==0.3.3.4,
              byteable ==0.1.1,
              bytestring ==0.10.4.0,
-             case-insensitive ==1.2.0.3,
-             cereal ==0.4.0.1,
-             cipher-aes ==0.2.8,
+             case-insensitive ==1.2.0.4,
+             cereal ==0.4.1.1,
+             cipher-aes ==0.2.10,
              cipher-des ==0.0.6,
              cipher-rc4 ==0.1.4,
              comonad ==4.2.2,
@@ -29,10 +28,10 @@
              contravariant ==1.2.0.1,
              cookie ==0.4.1.4,
              crypto-cipher-types ==0.0.9,
-             crypto-numbers ==0.2.3,
+             crypto-numbers ==0.2.7,
              crypto-pubkey ==0.2.8,
              crypto-pubkey-types ==0.4.3,
-             crypto-random ==0.0.7,
+             crypto-random ==0.0.8,
              cryptohash ==0.11.6,
              data-default ==0.5.3,
              data-default-class ==0.0.1,
@@ -44,65 +43,65 @@
              directory ==1.2.1.0,
              distributive ==0.4.4,
              dlist ==0.7.1,
-             either ==4.3.2.1,
+             either ==4.3.3.2,
              enclosed-exceptions ==1.0.1,
              errors ==1.4.7,
-             exceptions ==0.6.1,
+             exceptions ==0.8,
              filepath ==1.3.0.2,
              free ==4.10.0.1,
              ghc-prim ==0.3.1.0,
              hashable ==1.2.3.1,
              hourglass ==0.2.8,
-             http-client ==0.4.7,
+             http-client ==0.4.7.1,
              http-client-tls ==0.2.2,
-             http-types ==0.8.5,
+             http-types ==0.8.6,
              integer-gmp ==0.5.1.0,
-             lifted-base ==0.2.3.3,
+             lifted-base ==0.2.3.6,
              mime-types ==0.1.0.5,
              mmorph ==1.0.4,
-             monad-control ==1.0.0.1,
+             monad-control ==1.0.0.4,
              mtl ==2.2.1,
              nats ==1,
              network ==2.6.0.2,
              network-uri ==2.6.0.1,
              old-locale ==1.0.0.6,
-             optparse-applicative ==0.11.0.1,
-             parsec ==3.1.7,
+             optparse-applicative ==0.11.0.2,
+             parsec ==3.1.8,
              pem ==0.2.2,
              prelude-extras ==0.4,
              pretty ==1.1.1.1,
-             primitive ==0.5.3.0,
+             primitive ==0.5.4.0,
              process ==1.2.0.0,
              profunctors ==4.3.2,
              publicsuffixlist ==0.1,
-             random ==1.0.1.1,
-             resourcet ==1.1.3.3,
+             random ==1.1,
+             resourcet ==1.1.4.1,
              rts ==1.0,
-             safe ==0.3.6,
-             scientific ==0.3.3.5,
-             securemem ==0.1.3,
-             semigroupoids ==4.2,
-             semigroups ==0.16.0.1,
+             safe ==0.3.8,
+             scientific ==0.3.3.7,
+             securemem ==0.1.7,
+             semigroupoids ==4.3,
+             semigroups ==0.16.1,
              socks ==0.5.4,
-             stm ==2.4.3,
-             streaming-commons ==0.1.8,
-             syb ==0.4.2,
-             tagged ==0.7.2,
+             stm ==2.4.4,
+             streaming-commons ==0.1.9.1,
+             syb ==0.4.4,
+             tagged ==0.7.3,
              template-haskell ==2.9.0.0,
-             text ==1.2.0.3,
+             text ==1.2.0.4,
              time ==1.4.2,
              tls ==1.2.16,
-             transformers ==0.4.1.0,
-             transformers-base ==0.4.3,
-             transformers-compat ==0.3.3.4,
+             transformers ==0.4.2.0,
+             transformers-base ==0.4.4,
+             transformers-compat ==0.4.0.4,
              unix ==2.7.0.1,
              unordered-containers ==0.2.5.1,
-             utf8-string ==0.3.8,
-             vector ==0.10.11.0,
+             utf8-string ==1,
+             vector ==0.10.12.2,
              void ==0.7,
              x509 ==1.5.0.1,
              x509-store ==1.5.0,
              x509-system ==1.5.0,
              x509-validation ==1.5.1,
              yaml ==0.8.10.1,
-             zlib ==0.5.4.1
+             zlib ==0.5.4.2
diff --git a/constraints.old-transformers b/constraints.old-transformers
new file mode 100644
--- /dev/null
+++ b/constraints.old-transformers
@@ -0,0 +1,108 @@
+constraints: Cabal ==1.18.1.3,
+             MonadRandom ==0.3.0.1,
+             aeson ==0.8.0.2,
+             ansi-terminal ==0.6.2.1,
+             ansi-wl-pprint ==0.6.7.1,
+             array ==0.5.0.0,
+             asn1-encoding ==0.9.0,
+             asn1-parse ==0.9.0,
+             asn1-types ==0.3.0,
+             async ==2.0.2,
+             attoparsec ==0.12.1.2,
+             base ==4.7.0.1,
+             base-unicode-symbols ==0.2.2.4,
+             base64-bytestring ==1.0.0.1,
+             bifunctors ==4.2,
+             blaze-builder ==0.3.3.4,
+             byteable ==0.1.1,
+             bytestring ==0.10.4.0,
+             case-insensitive ==1.2.0.4,
+             cereal ==0.4.1.1,
+             cipher-aes ==0.2.10,
+             cipher-des ==0.0.6,
+             cipher-rc4 ==0.1.4,
+             comonad ==4.2.2,
+             conduit ==1.2.3.1,
+             connection ==0.2.4,
+             containers ==0.5.5.1,
+             contravariant ==1.2.0.1,
+             cookie ==0.4.1.4,
+             crypto-cipher-types ==0.0.9,
+             crypto-numbers ==0.2.7,
+             crypto-pubkey ==0.2.8,
+             crypto-pubkey-types ==0.4.3,
+             crypto-random ==0.0.8,
+             cryptohash ==0.11.6,
+             data-default ==0.5.3,
+             data-default-class ==0.0.1,
+             data-default-instances-base ==0.0.1,
+             data-default-instances-containers ==0.0.1,
+             data-default-instances-dlist ==0.0.1,
+             data-default-instances-old-locale ==0.0.1,
+             deepseq ==1.3.0.2,
+             directory ==1.2.1.0,
+             distributive ==0.4.4,
+             dlist ==0.7.1,
+             either ==4.3.3.2,
+             enclosed-exceptions ==1.0.1,
+             errors ==1.4.7,
+             exceptions ==0.8,
+             filepath ==1.3.0.2,
+             free ==4.10.0.1,
+             ghc-prim ==0.3.1.0,
+             hashable ==1.2.3.1,
+             hourglass ==0.2.8,
+             http-client ==0.4.7.1,
+             http-client-tls ==0.2.2,
+             http-types ==0.8.6,
+             integer-gmp ==0.5.1.0,
+             lifted-base ==0.2.3.6,
+             mime-types ==0.1.0.5,
+             mmorph ==1.0.4,
+             monad-control ==1.0.0.4,
+             mtl ==2.1.3.1,
+             mtl-compat ==0.1.1,
+             nats ==1,
+             network ==2.6.0.2,
+             network-uri ==2.6.0.1,
+             old-locale ==1.0.0.6,
+             optparse-applicative ==0.11.0.1,
+             parsec ==3.1.8,
+             pem ==0.2.2,
+             prelude-extras ==0.4,
+             pretty ==1.1.1.1,
+             primitive ==0.5.4.0,
+             process ==1.2.0.0,
+             profunctors ==4.3.2,
+             publicsuffixlist ==0.1,
+             random ==1.1,
+             resourcet ==1.1.4,
+             rts ==1.0,
+             safe ==0.3.8,
+             scientific ==0.3.3.7,
+             securemem ==0.1.7,
+             semigroupoids ==4.3,
+             semigroups ==0.16.1,
+             socks ==0.5.4,
+             stm ==2.4.4,
+             streaming-commons ==0.1.9.1,
+             syb ==0.4.4,
+             tagged ==0.7.3,
+             template-haskell ==2.9.0.0,
+             text ==1.2.0.4,
+             time ==1.4.2,
+             tls ==1.2.16,
+             transformers ==0.3.0.0,
+             transformers-base ==0.4.4,
+             transformers-compat ==0.3.3.3,
+             unix ==2.7.0.1,
+             unordered-containers ==0.2.5.1,
+             utf8-string ==1,
+             vector ==0.10.12.2,
+             void ==0.7,
+             x509 ==1.5.0.1,
+             x509-store ==1.5.0,
+             x509-system ==1.5.0,
+             x509-validation ==1.5.1,
+             yaml ==0.8.10.1,
+             zlib ==0.5.4.2
diff --git a/src/Configuration/Utils/Internal/ConfigFileReader.hs b/src/Configuration/Utils/Internal/ConfigFileReader.hs
--- a/src/Configuration/Utils/Internal/ConfigFileReader.hs
+++ b/src/Configuration/Utils/Internal/ConfigFileReader.hs
@@ -42,7 +42,9 @@
 
 import Control.Applicative
 import Control.DeepSeq (NFData)
-import Control.Monad.Except hiding (mapM_)
+import Control.Monad
+import Control.Monad.IO.Class
+import Control.Monad.Error.Class
 
 import qualified Data.ByteString.Char8 as B8
 import qualified Data.CaseInsensitive as CI
diff --git a/src/Configuration/Utils/Internal/HttpsCertPolicy.hs b/src/Configuration/Utils/Internal/HttpsCertPolicy.hs
--- a/src/Configuration/Utils/Internal/HttpsCertPolicy.hs
+++ b/src/Configuration/Utils/Internal/HttpsCertPolicy.hs
@@ -36,7 +36,6 @@
 import Configuration.Utils.Operators
 import Configuration.Utils.Validation
 
-import Control.Monad.Except hiding (mapM_)
 import Control.Monad.Writer hiding (mapM_)
 
 import qualified Data.ByteString.Char8 as B8
diff --git a/src/Configuration/Utils/Monoid.hs b/src/Configuration/Utils/Monoid.hs
--- a/src/Configuration/Utils/Monoid.hs
+++ b/src/Configuration/Utils/Monoid.hs
@@ -32,7 +32,6 @@
 import Configuration.Utils.CommandLine
 import Configuration.Utils.Internal
 
-import Control.Monad.Except hiding (mapM_)
 import Control.Monad.Writer hiding (mapM_)
 
 import Data.Aeson
