diff --git a/patches/ghcide-2.6.0.0.patch b/patches/ghcide-2.6.0.0.patch
index 7221351eff92e550cfedf269bb686d678bf7e5b0..0c401eb77242dda53028523a914f3f82df79d81f 100644
--- a/patches/ghcide-2.6.0.0.patch
+++ b/patches/ghcide-2.6.0.0.patch
@@ -16,7 +16,7 @@ index b1bc9d4..0a94766 100644
            home_unit_id <- uids
            home_unit_env <- maybeToList $ unitEnv_lookup_maybe home_unit_id $ hsc_HUG hscEnv'
 diff --git a/src/Development/IDE/Core/Compile.hs b/src/Development/IDE/Core/Compile.hs
-index eba9cd6..8008537 100644
+index eba9cd6..1955493 100644
 --- a/src/Development/IDE/Core/Compile.hs
 +++ b/src/Development/IDE/Core/Compile.hs
 @@ -80,7 +80,7 @@ import           Development.IDE.Core.Shake
@@ -28,7 +28,56 @@ index eba9cd6..8008537 100644
  import qualified Development.IDE.GHC.Compat        as Compat
  import qualified Development.IDE.GHC.Compat        as GHC
  import qualified Development.IDE.GHC.Compat.Util   as Util
-@@ -1748,19 +1748,19 @@ pathToModuleName = mkModuleName . map rep
+@@ -487,7 +487,13 @@ mkHiFileResultNoCompile session tcm = do
+                       Nothing
+ #endif
+                       tcGblEnv
+-  let iface = iface' { mi_globals = Nothing, mi_usages = filterUsages (mi_usages iface') } -- See Note [Clearing mi_globals after generating an iface]
++  let iface = iface' { mi_usages = filterUsages (mi_usages iface')
++#if MIN_VERSION_ghc(9,11,0)
++                     , mi_top_env = Nothing
++#else
++                     , mi_globals = Nothing
++#endif
++                     } -- See Note [Clearing mi_globals after generating an iface]
+   pure $! mkHiFileResult ms iface details (tmrRuntimeModules tcm) Nothing
+ 
+ mkHiFileResultCompile
+@@ -514,6 +520,9 @@ mkHiFileResultCompile se session' tcm simplified_guts = catchErrs $ do
+                                               details
+ #if MIN_VERSION_ghc(9,3,0)
+                                               ms
++#endif
++#if MIN_VERSION_ghc(9,11,0)
++                                              (tcg_import_decls (tmrTypechecked tcm))
+ #endif
+                                               simplified_guts
+ 
+@@ -521,7 +530,13 @@ mkHiFileResultCompile se session' tcm simplified_guts = catchErrs $ do
+ #if MIN_VERSION_ghc(9,4,2)
+                     Nothing
+ #endif
+-  let final_iface = final_iface' {mi_globals = Nothing, mi_usages = filterUsages (mi_usages final_iface')} -- See Note [Clearing mi_globals after generating an iface]
++  let final_iface = final_iface' { mi_usages = filterUsages (mi_usages final_iface')
++#if MIN_VERSION_ghc(9,11,0)
++                                 , mi_top_env = Nothing
++#else
++                                 , mi_globals = Nothing
++#endif
++                                 } -- See Note [Clearing mi_globals after generating an iface]
+ 
+   -- Write the core file now
+   core_file <- do
+@@ -529,7 +544,7 @@ mkHiFileResultCompile se session' tcm simplified_guts = catchErrs $ do
+             core_file = codeGutsToCoreFile iface_hash guts
+             iface_hash = getModuleHash final_iface
+         core_hash1 <- atomicFileWrite se core_fp $ \fp ->
+-          writeBinCoreFile fp core_file
++          writeBinCoreFile (hsc_dflags session) fp core_file
+         -- We want to drop references to guts and read in a serialized, compact version
+         -- of the core file from disk (as it is deserialised lazily)
+         -- This is because we don't want to keep the guts in memory for every file in
+@@ -1748,19 +1763,19 @@ pathToModuleName = mkModuleName . map rep
  
    - CPP clauses should be placed at the end of the imports section. The clauses
    should be ordered by the GHC version they target from earlier to later versions,
@@ -189,6 +238,59 @@ index caee9d5..11a4fb9 100644
  
  unload :: HscEnv -> [Linkable] -> IO ()
  unload hsc_env linkables =
+diff --git a/src/Development/IDE/GHC/Compat/Iface.hs b/src/Development/IDE/GHC/Compat/Iface.hs
+index d848083..60f73c0 100644
+--- a/src/Development/IDE/GHC/Compat/Iface.hs
++++ b/src/Development/IDE/GHC/Compat/Iface.hs
+@@ -26,7 +26,9 @@ import           GHC.Driver.Session                    (targetProfile)
+ #endif
+ 
+ writeIfaceFile :: HscEnv -> FilePath -> ModIface -> IO ()
+-#if MIN_VERSION_ghc(9,3,0)
++#if MIN_VERSION_ghc(9,11,0)
++writeIfaceFile env fp iface = Iface.writeIface (hsc_logger env) (targetProfile $ hsc_dflags env) (Iface.flagsToIfCompression $ hsc_dflags env) fp iface
++#elif MIN_VERSION_ghc(9,3,0)
+ writeIfaceFile env fp iface = Iface.writeIface (hsc_logger env) (targetProfile $ hsc_dflags env) fp iface
+ #else
+ writeIfaceFile env fp iface = Iface.writeIface (hsc_logger env) (hsc_dflags env) fp iface
+diff --git a/src/Development/IDE/GHC/CoreFile.hs b/src/Development/IDE/GHC/CoreFile.hs
+index 4fddbe7..804c6ac 100644
+--- a/src/Development/IDE/GHC/CoreFile.hs
++++ b/src/Development/IDE/GHC/CoreFile.hs
+@@ -31,6 +31,9 @@ import           GHC.Core
+ import           GHC.CoreToIface
+ import           GHC.Iface.Binary
+ import           GHC.Iface.Env
++#if MIN_VERSION_ghc(9,11,0)
++import qualified GHC.Iface.Load                  as Iface
++#endif
+ import           GHC.Iface.Recomp.Binary         (fingerprintBinMem)
+ import           GHC.IfaceToCore
+ import           GHC.Types.Id.Make
+@@ -93,14 +96,20 @@ readBinCoreFile name_cache fat_hi_path = do
+     return (file, fp)
+ 
+ -- | Write a core file
+-writeBinCoreFile :: FilePath -> CoreFile -> IO Fingerprint
+-writeBinCoreFile core_path fat_iface = do
++writeBinCoreFile :: DynFlags -> FilePath -> CoreFile -> IO Fingerprint
++writeBinCoreFile _dflags core_path fat_iface = do
+     bh <- openBinMem initBinMemSize
+ 
+     let quietTrace =
+           QuietBinIFace
+ 
+-    putWithUserData quietTrace bh fat_iface
++    putWithUserData
++      quietTrace
++#if MIN_VERSION_ghc(9,11,0)
++      (Iface.flagsToIfCompression _dflags)
++#endif
++      bh
++      fat_iface
+ 
+     -- And send the result to the file
+     writeBinMem bh core_path
 diff --git a/src/Development/IDE/GHC/Orphans.hs b/src/Development/IDE/GHC/Orphans.hs
 index d8d16ca..61656e3 100644
 --- a/src/Development/IDE/GHC/Orphans.hs