diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for brick-panes
 
+## 1.0.3.0 -- 2026-01-04
+
+* Bump upper bounds to allow GHC 9.12.
+
 ## 1.0.2.0 -- 2024-08-30
 
 * Bump upper bounds to allow GHC 9.10.
diff --git a/brick-panes.cabal b/brick-panes.cabal
--- a/brick-panes.cabal
+++ b/brick-panes.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               brick-panes
-version:            1.0.2.0
+version:            1.0.3.0
 synopsis:
     Panes library for Brick providing composition and isolation for TUI apps.
 
@@ -49,11 +49,11 @@
     hs-source-dirs:   src
     default-language: Haskell2010
     exposed-modules:  Brick.Panes
-    build-depends:    base >= 4.13 && < 4.21
-                    , brick >= 1.0 && < 2.4
+    build-depends:    base >= 4.13 && < 4.22
+                    , brick >= 1.0 && < 2.11
                     , containers
-                    , microlens >= 0.4.11.2 && < 0.5
-                    , vty >= 5.35 && < 6.2
+                    , microlens >= 0.4.11.2 && < 0.6
+                    , vty >= 5.35 && < 6.6
 
 executable mywork-example
     import:           settings
@@ -70,19 +70,19 @@
                       Panes.Summary
                       Paths_brick_panes
     autogen-modules:  Paths_brick_panes
-    build-depends:    base >= 4.13 && < 4.21
+    build-depends:    base >= 4.13 && < 4.22
                     , brick
                     , brick-panes
                     , aeson >= 2.0 && < 2.3
                     , bytestring
                     , containers
                     , directory
-                    , microlens >= 0.4.11.2 && < 0.5
+                    , microlens >= 0.4.11.2 && < 0.6
                     , text
                     , text-zipper >= 0.12 && < 0.14
                     , time
                     , vector >= 0.12 && < 0.14
-                    , vty >= 5.35 && < 6.2
+                    , vty >= 5.35 && < 6.6
     if !flag(examples)
       buildable: False
 
diff --git a/src/Brick/Panes.hs b/src/Brick/Panes.hs
--- a/src/Brick/Panes.hs
+++ b/src/Brick/Panes.hs
@@ -696,13 +696,16 @@
               -- no current focus, just use new list
               focusSetCurrent n $ focusRing nl
             Just e ->
-              case L.find ((e ==) . head) $ rotations nl of
+              case L.find (maybe False (e ==) . maybeHead) $ rotations nl of
                 Just r ->
                   focusRing r -- new ring with current element still focused
                 Nothing ->
                   -- new focus ring doesn't include current focused
                   -- element, so just use the new list.
                   focusSetCurrent n $ focusRing nl
+    maybeHead = \case
+      (h:_) -> Just h
+      [] -> Nothing
 
 
 -- | This returns the focusable Widget names for the focus ring, in the 'Ord'
