diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,7 @@
+2.6.0
+-----
+* Support Cabal 3.14
+
 2.5.0
 -----
 * Support ghc 9.8.2
diff --git a/cabal-bounds.cabal b/cabal-bounds.cabal
--- a/cabal-bounds.cabal
+++ b/cabal-bounds.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10.0
 name:               cabal-bounds
-version:            2.5.0
+version:            2.6.0
 license:            BSD3
 license-file:       LICENSE
 maintainer:         daniel.trstenjak@gmail.com
@@ -97,8 +97,8 @@
         strict >=0.3.2 && <0.6,
         unordered-containers >=0.2.3.3 && <0.3,
         transformers >=0.3.0.0 && <0.7,
-        cabal-lenses >=0.8.0 && <1.0,
-        Cabal >=3.12 && <4.0,
+        cabal-lenses >=0.15.0 && <1.0,
+        Cabal >=3.14 && <4.0,
         filepath >=1.3 && <1.6,
         directory >=1.2 && <1.4,
         aeson >=1.2.3.0 && <2.3,
diff --git a/lib/CabalBounds/Main.hs b/lib/CabalBounds/Main.hs
--- a/lib/CabalBounds/Main.hs
+++ b/lib/CabalBounds/Main.hs
@@ -10,6 +10,7 @@
 import qualified Distribution.PackageDescription.PrettyPrint as PP
 import Distribution.Simple.Configure (tryGetConfigStateFile)
 import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
+import Distribution.Utils.Path (makeSymbolicPath)
 import qualified Distribution.Simple.LocalBuildInfo as BI
 import qualified Distribution.Package as P
 import qualified Distribution.Simple.PackageIndex as PX
@@ -210,7 +211,7 @@
 librariesFromSetupConfig :: SetupConfigFile -> ExceptT Error IO LibraryMap
 librariesFromSetupConfig ""       = return HM.empty
 librariesFromSetupConfig confFile = do
-   binfo <- liftIO $ tryGetConfigStateFile confFile
+   binfo <- liftIO $ tryGetConfigStateFile Nothing (makeSymbolicPath confFile)
    case binfo of
         Left e   -> throwE $ show e
         Right bi -> return $ buildInfoLibs bi
diff --git a/lib/CabalBounds/Update.hs b/lib/CabalBounds/Update.hs
--- a/lib/CabalBounds/Update.hs
+++ b/lib/CabalBounds/Update.hs
@@ -81,15 +81,14 @@
       upperBound_   = fromMaybe V.NoUpperBound $ versionRange_ ^? CL.intervals . _last . CL.upperBound
 
       updateIfGreater newBound oldBound
-         | oldBound /= V.NoUpperBound
-         = if (version newBound) > (version oldBound)
+         | V.UpperBound newVers _ <- newBound
+         , V.UpperBound oldVers _ <- oldBound
+         = if newVers > oldVers
               then newBound
               else oldBound
 
          | otherwise
          = newBound
-         where
-            version (V.UpperBound vers _) = vers
 
 
 updateDependency (UpdateBoth lowerComp upperComp ifMissing) libs dep =
