diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,6 @@
+# ChangeLog for x509
+
+## 2022-05-31 v1.7.7
+
+- Bump requirements to GHC 7.8 and transformers 0.4 series [#130](https://github.com/haskell-tls/hs-certificate/pull/130)
+
diff --git a/Data/X509/Internal.hs b/Data/X509/Internal.hs
--- a/Data/X509/Internal.hs
+++ b/Data/X509/Internal.hs
@@ -5,7 +5,6 @@
 -- Stability   : experimental
 -- Portability : unknown
 --
-{-# LANGUAGE CPP #-}
 module Data.X509.Internal
     ( module Data.ASN1.Parse
     , asn1Container
@@ -17,18 +16,11 @@
 
 import Data.ASN1.Types
 import Data.ASN1.Parse
+import Control.Monad.Trans.Except
 
-#if MIN_VERSION_mtl(2,2,1)
-import Control.Monad.Except
 runErrT :: ExceptT e m a -> m (Either e a)
 runErrT = runExceptT
 type ErrT = ExceptT
-#else
-import Control.Monad.Error
-runErrT :: ErrorT e m a -> m (Either e a)
-runErrT = runErrorT
-type ErrT = ErrorT
-#endif
 
 -- | create a container around the stream of ASN1
 asn1Container :: ASN1ConstructionType -> [ASN1] -> [ASN1]
diff --git a/x509.cabal b/x509.cabal
--- a/x509.cabal
+++ b/x509.cabal
@@ -1,5 +1,5 @@
 Name:                x509
-version:             1.7.6
+version:             1.7.7
 Description:         X509 reader and writer. please see README
 License:             BSD3
 License-file:        LICENSE
@@ -12,13 +12,14 @@
 stability:           experimental
 Homepage:            http://github.com/vincenthz/hs-certificate
 Cabal-Version:       >= 1.10
+Extra-Source-Files:  ChangeLog.md
 
 Library
   Default-Language:  Haskell2010
-  Build-Depends:     base >= 3 && < 5
+  Build-Depends:     base >= 4.7 && < 5
                    , bytestring
                    , memory
-                   , mtl
+                   , transformers >= 0.4
                    , containers
                    , hourglass
                    , pem >= 0.1
