diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## [0.1.0.6] - 2022-03-23
+### Changed
+- Support aeson-2 and other GHC-9 related packages.
+
 ## [0.1.0.5] - 2019-09-07
 ### Changed
 - Upper bounds for lens-aeson.
diff --git a/aeson-picker.cabal b/aeson-picker.cabal
--- a/aeson-picker.cabal
+++ b/aeson-picker.cabal
@@ -1,11 +1,11 @@
 name:           aeson-picker
-version:        0.1.0.5
+version:        0.1.0.6
 synopsis:       Tiny library to get fields from JSON format
 description:    Tiny library to get fields from JSON format
-homepage:       https://github.com/ozzzzz/aeson-picker#readme
-bug-reports:    https://github.com/ozzzzz/aeson-picker/issues
+homepage:       https://github.com/biocad/aeson-picker#readme
+bug-reports:    https://github.com/biocad/aeson-picker/issues
 author:         Bogdan Neterebskii
-maintainer:     bog2dan1@gmail.com
+maintainer:     bog2dan1@gmail.com, kolmax94@gmail.com
 copyright:      (c) 2019, Bogdan Neterebskii
 stability:      experimental
 category:       Text, Web, JSON
@@ -14,22 +14,27 @@
 build-type:     Simple
 cabal-version:  >= 1.10
 
+tested-with:
+  GHC ==8.10.7
+   || ==9.0.2
+   || ==9.2.2
+
 extra-source-files:
     CHANGELOG.md
     README.md
 
 source-repository head
   type: git
-  location: https://github.com/ozzzzz/aeson-picker
+  location: https://github.com/biocad/aeson-picker
 
 library
   hs-source-dirs:   src
   exposed-modules:  Data.Aeson.Picker
   build-depends:    base >=4.7 && <5
-                  , aeson >= 1.2 && < 2
-                  , lens >= 4.15 && < 5
-                  , lens-aeson >= 1.0 && < 1.2
-                  , text >= 1.2 && < 1.3
+                  , aeson >= 1.2 && < 3
+                  , lens >= 4.15 && < 6
+                  , lens-aeson >= 1.0 && < 1.3
+                  , text >= 1.2 && < 2.1
   default-language: Haskell2010
 
 test-suite aeson-picker-test
diff --git a/src/Data/Aeson/Picker.hs b/src/Data/Aeson/Picker.hs
--- a/src/Data/Aeson/Picker.hs
+++ b/src/Data/Aeson/Picker.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE RankNTypes        #-}
 module Data.Aeson.Picker
@@ -11,6 +12,10 @@
 import           Data.Maybe      (fromMaybe)
 import           Data.Text       (Text)
 
+#if MIN_VERSION_aeson(2, 0, 0)
+import qualified Data.Aeson.Key
+#endif
+
 -- | From given JSON and selectors returns typed field. If input JSON is not valid or selected field is not found then error is thrown.
 -- If you need more safe way use '(|-?)' instead. Examples:
 --
@@ -70,5 +75,10 @@
 -- | Generates getter from given selectors
 genGetter :: AsValue t => [Text] -> Traversal' t Value
 genGetter []     = error "Data.Aeson.Picker.Internal.Functions.genGetter: this should not be happened"
+#if MIN_VERSION_aeson(2, 0, 0)
+genGetter [x]    = key (Data.Aeson.Key.fromText x)
+genGetter (x:xs) = key (Data.Aeson.Key.fromText x) . genGetter xs
+#else
 genGetter [x]    = key x
-genGetter (x:xs) = key x . genGetter xs 
+genGetter (x:xs) = key x . genGetter xs
+#endif
