diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,9 @@
+# 1.12.1.1
+
+Andreas Abel, 2025-08-25
+* Drop obsolete `deriving Typeable` everywhere.
+* Tested with GHC 8.2 - 9.14 alpha1 (cabal) and GHC 8.10 - 9.12 (stack).
+
 # 1.12.1
 
 Andreas Abel, 2023-04-03
diff --git a/shelly.cabal b/shelly.cabal
--- a/shelly.cabal
+++ b/shelly.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.0
 
 Name:          shelly
-Version:       1.12.1
+Version:       1.12.1.1
 
 Synopsis:      shell-like (systems) programming in Haskell
 
@@ -30,9 +30,13 @@
 Build-type:    Simple
 
 tested-with:
-  GHC == 9.6.1
-  GHC == 9.4.4
-  GHC == 9.2.7
+  GHC == 9.14.1
+  GHC == 9.12.2
+  GHC == 9.10.2
+  GHC == 9.8.4
+  GHC == 9.6.7
+  GHC == 9.4.8
+  GHC == 9.2.8
   GHC == 9.0.2
   GHC == 8.10.7
   GHC == 8.8.4
@@ -87,13 +91,12 @@
     , enclosed-exceptions       >= 1.0.1
     , exceptions                >= 0.10.0
     , filepath                  >= 1.4.1.1
-    , lifted-async              >= 0.10.2
     , lifted-base               >= 0.2.3.2
     , monad-control             >= 0.3.2     && < 1.1
     , mtl                       >= 2.2.2
     , process                   >= 1.6.1.0
     , text                      >= 1.2.3.1
-    , time                      >= 1.3       && < 1.13
+    , time                      >= 1.3
     , transformers              >= 0.5.2.0
     , transformers-base         >= 0.4.5
     , unix-compat               >= 0.4.1.1   && < 0.8
diff --git a/src/Shelly.hs b/src/Shelly.hs
--- a/src/Shelly.hs
+++ b/src/Shelly.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE ExistentialQuantification #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -123,7 +122,6 @@
 import Data.Sequence   ( Seq, (|>) )
 import Data.Time.Clock ( getCurrentTime, diffUTCTime  )
 import Data.Tree       ( Tree(..) )
-import Data.Typeable
 
 import qualified Data.ByteString as BS
 import qualified Data.Set as Set
@@ -1020,7 +1018,7 @@
                   [x] -> Just x
                   _ -> Nothing
 
-data RunFailed = RunFailed FilePath [Text] Int Text deriving (Typeable)
+data RunFailed = RunFailed FilePath [Text] Int Text
 
 instance Show RunFailed where
   show (RunFailed exe args code errs) =
@@ -1132,11 +1130,11 @@
         SeqSsh -> memo <> " && " <> next
         ParSsh -> memo <> " & " <> next
 
-data QuietExit = QuietExit Int deriving (Show, Typeable)
+data QuietExit = QuietExit Int deriving (Show)
 instance Exception QuietExit
 
 -- | Shelly's wrapper around exceptions thrown in its monad
-data ReThrownException e = ReThrownException e String deriving (Typeable)
+data ReThrownException e = ReThrownException e String
 instance Exception e => Exception (ReThrownException e)
 instance Exception e => Show (ReThrownException e) where
   show (ReThrownException ex msg) = "\n" ++
diff --git a/src/Shelly/Base.hs b/src/Shelly/Base.hs
--- a/src/Shelly/Base.hs
+++ b/src/Shelly/Base.hs
@@ -7,7 +7,6 @@
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE InstanceSigs#-}
 
 module Shelly.Base
@@ -56,7 +55,6 @@
 import Control.Monad.Reader.Class (MonadReader, ask)
 import Control.Monad.Trans.Reader (runReaderT, ReaderT(..))
 import qualified Data.Set as S
-import Data.Typeable (Typeable)
 
 -- | ShIO is Deprecated in favor of 'Sh', which is easier to type.
 type ShIO a = Sh a
@@ -215,7 +213,7 @@
    if not was_dir then FS.canonicalizePath p
      else addTrailingSlash `fmap` FS.canonicalizePath p
 
-data EmptyFilePathError = EmptyFilePathError deriving Typeable
+data EmptyFilePathError = EmptyFilePathError
 instance Show EmptyFilePathError where
     show _ = "Empty filepath"
 instance Exception EmptyFilePathError
diff --git a/src/Shelly/Lifted.hs b/src/Shelly/Lifted.hs
--- a/src/Shelly/Lifted.hs
+++ b/src/Shelly/Lifted.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE ScopedTypeVariables, DeriveDataTypeable, OverloadedStrings,
+{-# LANGUAGE ScopedTypeVariables, OverloadedStrings,
              FlexibleInstances, FlexibleContexts, IncoherentInstances,
              TypeFamilies, ExistentialQuantification, RankNTypes,
              ImpredicativeTypes #-}
