diff --git a/Setup.hs b/Setup.hs
index ddf5a02..7ad1f26 100644
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,4 +1,4 @@
-
+{-# LANGUAGE CPP #-}
 import Control.Monad (when)
 import Language.Haskell.TH
 import Distribution.Simple                (defaultMainWithHooks, simpleUserHooks, UserHooks(postConf), Args)
@@ -6,14 +6,25 @@ import Distribution.Simple.Utils          (cabalVersion)
 import Distribution.Simple.LocalBuildInfo
 import Distribution.Simple.Setup          (ConfigFlags)
 import Distribution.Version               (Version(..))
+#if MIN_VERSION_Cabal(1,25,0)
+import Distribution.Version               (mkVersion)
+#endif
 import Distribution.PackageDescription    (PackageDescription)
 import Debug.Trace
 
+#if MIN_VERSION_Cabal(1,25,0)
+versionBranch :: Version -> Version
+versionBranch = id
+#else
+mkVersion :: [Int] -> Version
+mkVersion vs = Version vs []
+#endif
+
 -- I couldn't figure out a way to do this check from the cabal file, so we drop down
 -- here to do it instead:
 checkGoodVersion :: IO ()
 checkGoodVersion =
-  if   cabalVersion >= Version [1,17,0] []
+  if   cabalVersion >= mkVersion [1,17,0]
   then putStrLn (" [Setup.hs] This version of Cabal is ok for profiling: "++show cabalVersion)
   else error (" [Setup.hs] This package should not be used in profiling mode with cabal version "++
                         show (versionBranch cabalVersion)++" < 1.17.0\n"++