diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,7 +1,15 @@
+1.5.1
+=====
+
+  * GHC 9.2 compatibility
+
 1.5.0
 =====
 
   * Streamlined API.
+
+  * Sprinkled some CPP to support clients that have been made compatible
+    with Aeson 2.0 yet, so that they do not have to use a separate release (1.3.x)
 
 1.4.3
 =====
diff --git a/aeson-match-qq.cabal b/aeson-match-qq.cabal
--- a/aeson-match-qq.cabal
+++ b/aeson-match-qq.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           aeson-match-qq
-version:        1.5.0
+version:        1.5.1
 synopsis:       Declarative JSON matchers.
 description:    See README.markdown
 category:       Web
diff --git a/src/Aeson/Match/QQ/Internal/Value.hs b/src/Aeson/Match/QQ/Internal/Value.hs
--- a/src/Aeson/Match/QQ/Internal/Value.hs
+++ b/src/Aeson/Match/QQ/Internal/Value.hs
@@ -36,7 +36,14 @@
 import           Data.Vector (Vector)
 import qualified Data.Vector as Vector
 import           Language.Haskell.TH (Exp(..), Lit(..))
-import           Language.Haskell.TH.Syntax (Lift(..), unsafeTExpCoerce)
+import           Language.Haskell.TH.Syntax
+  ( Lift(..)
+#if MIN_VERSION_template_haskell(2,17,0)
+  , unsafeCodeCoerce
+#else
+  , unsafeTExpCoerce
+#endif
+  )
 import           Prelude hiding (any, null)
 
 
@@ -152,12 +159,16 @@
           } :: Value Aeson.Value
       |]
     Ext ext ->
-      [| Ext (let Just val = Aeson.decode (Aeson.encodingToLazyByteString (Aeson.toEncoding $(pure ext))) in val) :: Value Aeson.Value |]
+      [| Ext (let ~(Just val) = Aeson.decode (Aeson.encodingToLazyByteString (Aeson.toEncoding $(pure ext))) in val) :: Value Aeson.Value |]
    where
     textL =
       StringL . Text.unpack
   liftTyped =
+#if MIN_VERSION_template_haskell(2,17,0)
+    unsafeCodeCoerce . lift
+#else
     unsafeTExpCoerce . lift
+#endif
 
 data TypeSig = TypeSig
   { type_    :: Type
