diff --git a/GHC/Exts/Heap/Closures.hs b/GHC/Exts/Heap/Closures.hs
--- a/GHC/Exts/Heap/Closures.hs
+++ b/GHC/Exts/Heap/Closures.hs
@@ -35,15 +35,24 @@
 import Prelude -- See note [Why do we import Prelude here?]
 import GHC.Exts.Heap.Constants
 #if defined(PROFILING)
+import GHC.Exts.Heap.InfoTable () -- see Note [No way-dependent imports]
 import GHC.Exts.Heap.InfoTableProf
 #else
 import GHC.Exts.Heap.InfoTable
+import GHC.Exts.Heap.InfoTableProf () -- see Note [No way-dependent imports]
 
--- `ghc -M` currently doesn't properly account for ways when generating
--- dependencies (#15197). This import ensures correct build-ordering between
--- this module and GHC.Exts.Heap.InfoTableProf. It should be removed when #15197
--- is fixed.
-import GHC.Exts.Heap.InfoTableProf ()
+{-
+Note [No way-dependent imports]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+`ghc -M` currently assumes that the imports for a module are the same
+in every way.  This is arguably a bug, but breaking this assumption by
+importing different things in different ways can cause trouble.  For
+example, this module in the profiling way imports and uses
+GHC.Exts.Heap.InfoTableProf.  When it was not also imported in the
+vanilla way, there were intermittent build failures due to this module
+being compiled in the profiling way before GHC.Exts.Heap.InfoTableProf
+in the profiling way. (#15197)
+-}
 #endif
 
 import GHC.Exts.Heap.ProfInfo.Types
diff --git a/GHC/Exts/Heap/FFIClosures.hs b/GHC/Exts/Heap/FFIClosures.hs
--- a/GHC/Exts/Heap/FFIClosures.hs
+++ b/GHC/Exts/Heap/FFIClosures.hs
@@ -41,7 +41,11 @@
 #if defined(PROFILING)
 import GHC.Exts.Heap.FFIClosures_ProfilingEnabled as Reexport
 import GHC.Exts.Heap.FFIClosures_ProfilingDisabled ()
+  -- See Note [No way-dependent imports] in GHC.Exts.Heap.Closures
+
 #else
 import GHC.Exts.Heap.FFIClosures_ProfilingDisabled as Reexport
 import GHC.Exts.Heap.FFIClosures_ProfilingEnabled ()
+  -- See Note [No way-dependent imports] in GHC.Exts.Heap.Closures
+
 #endif
diff --git a/GHC/Exts/Heap/ProfInfo/PeekProfInfo.hs b/GHC/Exts/Heap/ProfInfo/PeekProfInfo.hs
--- a/GHC/Exts/Heap/ProfInfo/PeekProfInfo.hs
+++ b/GHC/Exts/Heap/ProfInfo/PeekProfInfo.hs
@@ -7,7 +7,11 @@
 #if defined(PROFILING)
 import GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingEnabled as Reexport
 import GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingDisabled ()
+  -- See Note [No way-dependent imports] in GHC.Exts.Heap.Closures
+
 #else
 import GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingDisabled as Reexport
 import GHC.Exts.Heap.ProfInfo.PeekProfInfo_ProfilingEnabled ()
+  -- See Note [No way-dependent imports] in GHC.Exts.Heap.Closures
+
 #endif
diff --git a/cbits/Stack.cmm b/cbits/Stack.cmm
--- a/cbits/Stack.cmm
+++ b/cbits/Stack.cmm
@@ -127,11 +127,11 @@
 getUnderflowFrameNextChunkzh(P_ stack, W_ offsetWords) {
   P_ closurePtr;
   closurePtr = (StgStack_sp(stack) + WDS(offsetWords));
-  ASSERT(LOOKS_LIKE_CLOURE_PTR(closurePtr));
+  ASSERT(LOOKS_LIKE_CLOSURE_PTR(closurePtr));
 
   P_ next_chunk;
   (next_chunk) = ccall getUnderflowFrameNextChunk(closurePtr);
-  ASSERT(LOOKS_LIKE_CLOURE_PTR(next_chunk));
+  ASSERT(LOOKS_LIKE_CLOSURE_PTR(next_chunk));
   return (next_chunk);
 }
 
diff --git a/ghc-heap.cabal b/ghc-heap.cabal
--- a/ghc-heap.cabal
+++ b/ghc-heap.cabal
@@ -1,6 +1,6 @@
 cabal-version:  3.0
 name:           ghc-heap
-version:        9.10.1
+version:        9.10.2
 license:        BSD-3-Clause
 license-file:   LICENSE
 maintainer:     libraries@haskell.org
@@ -23,12 +23,12 @@
   default-language: Haskell2010
 
   build-depends:    base             >= 4.9.0 && < 5.0
-                  , ghc-prim         > 0.2 && < 0.12
+                  , ghc-prim         > 0.2 && < 0.13
                   , rts              == 1.0.*
                   , containers       >= 0.6.2.1 && < 0.8
 
   if impl(ghc >= 9.9)
-    build-depends:  ghc-internal     >= 9.1001 && < 9.1002
+    build-depends:  ghc-internal     >= 9.900 && < 9.1002.99999
 
   ghc-options:      -Wall
   if !os(ghcjs)
