diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for qrcode-core
 
+## 0.9.9 -- 2023-10-10
+
+* Support for primitive-0.9
+
 ## 0.9.8 -- 2023-04-30
 
 * Support for primitive-0.8
diff --git a/qrcode-core.cabal b/qrcode-core.cabal
--- a/qrcode-core.cabal
+++ b/qrcode-core.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: dac63f4fad8cbf62e8ec7d425ca776ce9fc5ef104a4a24ab9499a655931b6e20
+-- hash: bae52055ca1b27d3862420efb1cf49c09fbb0b7aa28e0a5f98cca848c83740af
 
 name:           qrcode-core
-version:        0.9.8
+version:        0.9.9
 synopsis:       QR code library in pure Haskell
 description:    Please see the README on GitHub at <https://github.com/alexkazik/qrcode/qrcode-core#readme>
 category:       codec
@@ -19,7 +19,7 @@
 license:        MIT
 license-file:   LICENSE
 tested-with:
-    GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.4.4, GHC == 8.6.3, GHC == 8.6.4, GHC == 8.6.5, GHC == 8.8.2, GHC == 8.8.3, GHC == 8.10.1, GHC == 8.10.7, GHC == 9.4.4
+    GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.4.4, GHC == 8.6.3, GHC == 8.6.4, GHC == 8.6.5, GHC == 8.8.2, GHC == 8.8.3, GHC == 8.10.1, GHC == 8.10.7, GHC == 9.4.4, GHC == 9.4.5
 build-type:     Simple
 extra-source-files:
     README.md
@@ -72,7 +72,7 @@
     , case-insensitive >=1.2.0.5 && <1.3
     , containers >=0.5.6.2 && <0.7
     , dlist >=0.7.1.2 && <1.1
-    , primitive >=0.6.1.0 && <0.9
+    , primitive >=0.6.1.0 && <0.10
     , text >=1.2.2.0 && <2.1
     , vector >=0.11.0.0 && <0.14
   default-language: Haskell2010
