diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## [0.1.0.1] - 2022-04-26
+
+### Added
+
+* Compatibility with `aeson >= 2.0.0.0`
+
 ## [0.1.0.0] - 2021-12-21
 
 ### Added
diff --git a/autodocodec-schema.cabal b/autodocodec-schema.cabal
--- a/autodocodec-schema.cabal
+++ b/autodocodec-schema.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.5.
+-- This file has been generated from package.yaml by hpack version 0.34.7.
 --
 -- see: https://github.com/sol/hpack
 
 name:           autodocodec-schema
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       Autodocodec interpreters for JSON Schema
 homepage:       https://github.com/NorfairKing/autodocodec#readme
 bug-reports:    https://github.com/NorfairKing/autodocodec/issues
diff --git a/src/Autodocodec/Schema.hs b/src/Autodocodec/Schema.hs
--- a/src/Autodocodec/Schema.hs
+++ b/src/Autodocodec/Schema.hs
@@ -10,6 +10,7 @@
 module Autodocodec.Schema where
 
 import Autodocodec
+import qualified Autodocodec.Aeson.Compat as Compat
 import Control.Monad.State
 import Data.Aeson (FromJSON (..), ToJSON (..))
 import qualified Data.Aeson as JSON
@@ -90,7 +91,7 @@
            in ["type" JSON..= ("object" :: Text), "additionalProperties" JSON..= JSON.object itemSchemaVal]
         ObjectSchema os ->
           case toJSON os of
-            JSON.Object o -> HM.toList o
+            JSON.Object o -> Compat.toList o
             _ -> [] -- Should not happen.
         AnyOfSchema jcs ->
           let svals :: [JSON.Value]
@@ -147,7 +148,7 @@
             case mOne of
               Just ones -> pure $ OneOfSchema ones
               Nothing -> do
-                let mConst = HM.lookup "const" o
+                let mConst = Compat.lookupKey "const" o
                 case mConst of
                   Just constant -> pure $ ValueSchema constant
                   Nothing -> do
@@ -220,7 +221,7 @@
         ObjectKeySchema k kr ks mDoc ->
           let (propVal, req) = keySchemaToPieces (k, kr, ks, mDoc)
            in -- TODO deal with the default value somehow.
-              concat [["properties" JSON..= JSON.object [k JSON..= propVal]], ["required" JSON..= [k] | req]]
+              concat [["properties" JSON..= JSON.object [Compat.toKey k JSON..= propVal]], ["required" JSON..= [k] | req]]
         ObjectAnyOfSchema ne -> ["anyOf" JSON..= NE.map toJSON ne]
         ObjectOneOfSchema ne -> ["oneOf" JSON..= NE.map toJSON ne]
         ObjectAllOfSchema ne ->
@@ -253,7 +254,7 @@
     goObject :: JSON.Object -> ObjectSchema -> State (Map Text JSONSchema) Bool
     goObject obj = \case
       ObjectAnySchema -> pure True
-      ObjectKeySchema key kr ks _ -> case HM.lookup key obj of
+      ObjectKeySchema key kr ks _ -> case Compat.lookupKey (Compat.toKey key) obj of
         Nothing -> case kr of
           Required -> pure False
           Optional _ -> pure True
