diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # ChangeLog for yesod
 
+## 1.6.2
+
+* aeson 2
+
 ## 1.6.1.2
 
 * Fix compatibility with template-haskell 2.17 [#1730](https://github.com/yesodweb/yesod/pull/1730)
diff --git a/Yesod/Default/Config.hs b/Yesod/Default/Config.hs
--- a/Yesod/Default/Config.hs
+++ b/Yesod/Default/Config.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE PatternGuards #-}
 module Yesod.Default.Config
@@ -19,12 +20,17 @@
 import qualified Data.Text as T
 import Data.Yaml
 import Data.Maybe (fromMaybe)
-import qualified Data.HashMap.Strict as M
 import System.Environment (getArgs, getProgName, getEnvironment)
 import System.Exit (exitFailure)
 import Data.Streaming.Network (HostPreference)
 import Data.String (fromString)
 
+#if MIN_VERSION_aeson(2, 0, 0)
+import qualified Data.Aeson.KeyMap as M
+#else
+import qualified Data.HashMap.Strict as M
+#endif
+
 -- | A yesod-provided @'AppEnv'@, allows for Development, Testing, and
 --   Production environments
 data DefaultEnv = Development
@@ -143,7 +149,7 @@
                 Object obj -> return obj
                 _ -> fail "Expected Object"
         let senv = show env
-            tenv = T.pack senv
+            tenv = fromString senv
         maybe
             (error $ "Could not find environment: " ++ senv)
             return
@@ -237,5 +243,5 @@
         Left err ->
           fail $ "Invalid YAML file: " ++ show fp ++ " " ++ prettyPrintParseException err
         Right (Object obj)
-            | Just v <- M.lookup (T.pack $ show env) obj -> parseMonad f v
+            | Just v <- M.lookup (fromString $ show env) obj -> parseMonad f v
         _ -> fail $ "Could not find environment: " ++ show env
diff --git a/Yesod/Default/Config2.hs b/Yesod/Default/Config2.hs
--- a/Yesod/Default/Config2.hs
+++ b/Yesod/Default/Config2.hs
@@ -30,7 +30,6 @@
 
 import Data.Semigroup
 import Data.Aeson
-import qualified Data.HashMap.Strict as H
 import System.Environment (getEnvironment)
 import Network.Wai (Application)
 import Network.Wai.Handler.Warp
@@ -42,6 +41,12 @@
 import Network.Wai.Logger (clockDateCacher)
 import Yesod.Core.Types (Logger (Logger))
 import System.Log.FastLogger (LoggerSet)
+
+#if MIN_VERSION_aeson(2, 0, 0)
+import qualified Data.Aeson.KeyMap as H
+#else
+import qualified Data.HashMap.Strict as H
+#endif
 
 #ifndef mingw32_HOST_OS
 import System.Posix.Signals (installHandler, sigINT, Handler(Catch))
diff --git a/yesod.cabal b/yesod.cabal
--- a/yesod.cabal
+++ b/yesod.cabal
@@ -1,5 +1,5 @@
 name:            yesod
-version:         1.6.1.2
+version:         1.6.2
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
