diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,9 @@
+## Changes in 0.15.0 [2026.01.10]
+ - Sync with `base-4.22`/GHC 9.14
+ - Restrict `Data.List.NonEmpty.Compat.unzip` to be of type
+   `NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)`, mirroring similar changes
+   introducted in `base-4.22`.
+
 ## Changes in 0.14.1 [2024.12.06]
  - Sync with `base-4.21`/GHC 9.12
  - Backport `compareLength` to `Data.List.Compat` and
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -162,6 +162,7 @@
  * `singleton` to `Data.List.Compat` and `Data.List.NonEmpty.Compat`
  * `inits1` and `tails1` to `Data.List.NonEmpty.Compat`
  * `permutations`, `permutations1`, and `sortOn` to `Data.List.NonEmpty.Compat`
+ * `Data.List.NonEmpty.Compat`'s `unzip` function is restricted to only work over `NonEmpty` lists
  * `hGetContents'`, `getContents'`, and `readFile'` to `System.IO.Compat`
  * `readBinP` to `Text.Read.Lex.Compat`
  * `withTypeable` and `pattern TypeRep` to `Type.Reflection.Compat`
@@ -314,6 +315,7 @@
 
 ## Supported versions of GHC/`base`
 
+ * `ghc-9.14.*` / `base-4.22.*`
  * `ghc-9.12.*` / `base-4.21.*`
  * `ghc-9.10.*` / `base-4.20.*`
  * `ghc-9.8.*`  / `base-4.19.*`
diff --git a/base-compat.cabal b/base-compat.cabal
--- a/base-compat.cabal
+++ b/base-compat.cabal
@@ -1,5 +1,5 @@
 name:             base-compat
-version:          0.14.1
+version:          0.15.0
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2018 Simon Hengel,
@@ -53,10 +53,11 @@
                   , GHC == 9.0.2
                   , GHC == 9.2.8
                   , GHC == 9.4.8
-                  , GHC == 9.6.6
-                  , GHC == 9.8.2
-                  , GHC == 9.10.1
-                  , GHC == 9.12.1
+                  , GHC == 9.6.7
+                  , GHC == 9.8.4
+                  , GHC == 9.10.3
+                  , GHC == 9.12.2
+                  , GHC == 9.14.1
 
 source-repository head
   type: git
@@ -71,8 +72,6 @@
   build-depends:
       base >= 4.9 && < 5,
       ghc-prim
-  if !os(windows) && !os(halvm)
-      build-depends: unix
   ghc-options:
       -Wno-duplicate-exports -Wno-trustworthy-safe
 
diff --git a/src/Data/List/NonEmpty/Compat.hs b/src/Data/List/NonEmpty/Compat.hs
--- a/src/Data/List/NonEmpty/Compat.hs
+++ b/src/Data/List/NonEmpty/Compat.hs
@@ -82,14 +82,20 @@
 ) where
 
 import Data.List.NonEmpty
+#if !(MIN_VERSION_base(4,22,0))
+  hiding (unzip)
+#endif
 
 #if !(MIN_VERSION_base(4,20,0))
-import qualified Prelude.Compat as Prelude
 import Prelude.Compat ((.))
 
 import qualified Data.List.Compat as List
 #endif
 
+#if !(MIN_VERSION_base(4,22,0))
+import qualified Prelude.Compat as Prelude
+#endif
+
 #if !(MIN_VERSION_base(4,21,0))
 import Prelude.Compat (Int, Num(..), Ord(..), Ordering(..), otherwise)
 
@@ -275,4 +281,10 @@
     (\m -> if m > 0 then LT else EQ)
     xs
     n
+#endif
+
+#if !(MIN_VERSION_base(4,22,0))
+-- | The 'unzip' function is the inverse of the 'zip' function.
+unzip :: NonEmpty (a, b) -> (NonEmpty a, NonEmpty b)
+unzip xs = (Prelude.fst Prelude.<$> xs, Prelude.snd Prelude.<$> xs)
 #endif
