diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,6 @@
+# 0.2.5
+  * Loosen Cabal bounds to >= 2.4 && < 3.9
+
 # 0.2.4
   * Add support for GHC 9.4 ([#43](https://github.com/martijnbastiaan/doctest-parallel/pull/43))
 
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -322,10 +322,6 @@
  * A minor change: it does not count lines in setup blocks as test cases
  * A minor change: the testsuite has been ported to v2 commands
 
-AFAIK there's only one downside to using this project:
-
- * Use of conditionals in a cabal file as well as CPP flags will be ignored (TODO?)
-
 All in all, you can expect `doctest-parallel` to run about 1 or 2 orders of magnitude faster than `doctest` for large projects.
 
 # Relation to [`cabal-docspec`](https://github.com/phadej/cabal-extras/tree/master/cabal-docspec)
diff --git a/doctest-parallel.cabal b/doctest-parallel.cabal
--- a/doctest-parallel.cabal
+++ b/doctest-parallel.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.0
 
 name:           doctest-parallel
-version:        0.2.4
+version:        0.2.5
 synopsis:       Test interactive Haskell examples
 description:    The doctest program checks examples in source code comments.  It is modeled
                 after doctest for Python (<https://docs.python.org/3/library/doctest.html>).
@@ -88,7 +88,7 @@
   other-modules:
       Paths_doctest_parallel
   build-depends:
-      Cabal >= 3.4 && < 3.9
+      Cabal >= 2.4 && < 3.9
     , Glob
     , base >=4.10 && <5
     , base-compat >=0.7.0
diff --git a/src/Test/DocTest/Helpers.hs b/src/Test/DocTest/Helpers.hs
--- a/src/Test/DocTest/Helpers.hs
+++ b/src/Test/DocTest/Helpers.hs
@@ -29,14 +29,13 @@
 import Distribution.PackageDescription
   ( GenericPackageDescription (condLibrary)
   , exposedModules, libBuildInfo, hsSourceDirs, defaultExtensions, package
-  , packageDescription, condSubLibraries, includeDirs, autogenModules, ConfVar )
+  , packageDescription, condSubLibraries, includeDirs, autogenModules, ConfVar(..) )
 
 import Distribution.Compiler (CompilerFlavor(GHC))
 import Distribution.Pretty (prettyShow)
 import Distribution.System (buildArch, buildOS)
 import Distribution.Types.Condition (Condition(..))
 import Distribution.Types.CondTree
-import Distribution.Types.ConfVar (ConfVar(..))
 import Distribution.Types.Version (Version, mkVersion')
 import Distribution.Types.VersionRange (withinRange)
 import Distribution.Verbosity (silent)
@@ -112,7 +111,7 @@
    f (a:as) (_:bs) = a : f as bs
    f _ _ = []
 
--- Searches for a file called @package.cabal@, where @package@ is given as an
+-- | Searches for a file called @package.cabal@, where @package@ is given as an
 -- argument. It will look for it in the current directory. If it can't find it
 -- there, it will traverse up until it finds the file or a file called
 -- @cabal.project@. In case of the latter, it will traverse down recursively
@@ -181,7 +180,11 @@
             GHC -> withinRange buildGhc versionRange
             _   -> error ("Unrecognized compiler: " <> show cf)
         -- XXX: We currently ignore any flags passed to Cabal
+#if MIN_VERSION_Cabal(3,4,0)
         PackageFlag _fn -> False
+#else
+        Flag _fn -> False
+#endif
     Lit b -> b
     CNot con -> not (goCondition con)
     COr con0 con1 -> goCondition con0 || goCondition con1
@@ -191,7 +194,7 @@
 buildGhc :: Version
 buildGhc = mkVersion' compilerVersion
 
--- Given a filepath to a @package.cabal@, parse it, and yield a "Library". Yields
+-- | Given a filepath to a @package.cabal@, parse it, and yield a "Library". Yields
 -- the default Library if first argument is Nothing, otherwise it will look for
 -- a specific sublibrary.
 extractSpecificCabalLibrary :: Maybe String -> FilePath -> IO Library
@@ -235,7 +238,7 @@
     root = takeDirectory pkgPath
 
 
--- Given a filepath to a @package.cabal@, parse it, and yield a "Library". Returns
+-- | Given a filepath to a @package.cabal@, parse it, and yield a "Library". Returns
 -- and error if no library was specified in the cabal package file.
 extractCabalLibrary :: FilePath -> IO Library
 extractCabalLibrary = extractSpecificCabalLibrary Nothing
