diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/buffer-builder-aeson.cabal b/buffer-builder-aeson.cabal
--- a/buffer-builder-aeson.cabal
+++ b/buffer-builder-aeson.cabal
@@ -2,7 +2,7 @@
 --  documentation, see http://haskell.org/cabal/users-guide/
 
 name:                buffer-builder-aeson
-version:             0.2.0.4
+version:             0.2.0.5
 synopsis:            Serialize Aeson values with Data.BufferBuilder
 -- description:
 license:             MIT
diff --git a/src/Data/BufferBuilder/Aeson.hs b/src/Data/BufferBuilder/Aeson.hs
--- a/src/Data/BufferBuilder/Aeson.hs
+++ b/src/Data/BufferBuilder/Aeson.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE MagicHash #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-} 
 
@@ -10,10 +11,15 @@
 import qualified Data.BufferBuilder.Json as Json
 import qualified Data.BufferBuilder.Utf8 as Utf8Builder
 import qualified Data.ByteString.Lazy as BSL
-import qualified Data.ByteString.Lazy.Builder as BB
+import qualified Data.ByteString.Builder as BB
 import qualified Data.ByteString.Builder.Scientific as BB
 import qualified Data.Scientific as Scientific
 
+#if MIN_VERSION_aeson(2,0,0)
+import Data.Aeson.KeyMap (foldrWithKey)
+import Data.Aeson.Key (toText)
+#endif
+
 -- TODO: this doesn't need to convert the bytestring to strict before appending it
 -- there is an appendBSL
 slowNumber :: Scientific.Scientific -> Json.Value
@@ -24,7 +30,14 @@
 
 instance ToJson Value where
     {-# INLINE toJson #-}
+#if MIN_VERSION_aeson(2,0,0)
+    toJson (Object o) = toJson $ foldrWithKey
+                            (\k v built -> (toText k Json..= (toJson v)) <> built)
+                            mempty
+                            o
+#else
     toJson (Object o) = toJson o
+#endif
     toJson (Array a) = toJson a
     toJson (String s) = toJson s
     toJson (Number n) = case Scientific.coefficient n of
