diff --git a/Data/Aeson/Encode/Pretty.hs b/Data/Aeson/Encode/Pretty.hs
--- a/Data/Aeson/Encode/Pretty.hs
+++ b/Data/Aeson/Encode/Pretty.hs
@@ -3,10 +3,10 @@
 -- |Aeson-compatible pretty-printing of JSON 'Value's.
 module Data.Aeson.Encode.Pretty (
     -- * Simple Pretty-Printing
-    encodePretty,
+    encodePretty, encodePrettyToTextBuilder,
     
     -- * Pretty-Printing with Configuration Options
-    encodePretty',
+    encodePretty', encodePrettyToTextBuilder',
     Config (..), defConfig,
     -- ** Sorting Keys in Objects
     -- |With the Aeson library, the order of keys in objects is undefined due
@@ -60,7 +60,7 @@
 import qualified Data.HashMap.Strict as H (toList)
 import Data.List (intersperse, sortBy, elemIndex)
 import Data.Maybe (fromMaybe)
-import Data.Monoid (mappend, mconcat, mempty)
+import Data.Monoid ((<>), mconcat, mempty)
 import Data.Ord
 import Data.Text (Text)
 import Data.Text.Lazy.Builder (Builder, toLazyText)
@@ -92,7 +92,7 @@
 -- |The default configuration: indent by four spaces per level of nesting, do
 --  not sort objects by key.
 --
---  > defConfig = Config { confIndent = 4, confSort = mempty }
+--  > defConfig = Config { confIndent = 4, confCompare = mempty }
 defConfig :: Config
 defConfig = Config { confIndent = 4, confCompare = mempty }
 
@@ -106,17 +106,30 @@
 -- |A variant of 'encodePretty' that takes an additional configuration
 --  parameter.
 encodePretty' :: ToJSON a => Config -> a -> ByteString
-encodePretty' Config{..} = encodeUtf8 . toLazyText . fromValue st . toJSON
+encodePretty' conf = encodeUtf8 . toLazyText . encodePrettyToTextBuilder' conf
+
+-- |A drop-in replacement for aeson's 'Aeson.encodeToTextBuilder' function,
+--  producing JSON-ByteStrings for human readers.
+--
+--  Follows the default configuration in 'defConfig'.
+encodePrettyToTextBuilder :: ToJSON a => a -> Builder
+encodePrettyToTextBuilder = encodePrettyToTextBuilder' defConfig
+
+-- |A variant of 'encodeToTextBuilder' that takes an additional configuration
+--  parameter.
+encodePrettyToTextBuilder' :: ToJSON a => Config -> a -> Builder
+encodePrettyToTextBuilder' Config{..} = fromValue st . toJSON
   where
     st       = PState confIndent 0 condSort
     condSort = sortBy (confCompare `on` fst)
 
+
 fromValue :: PState -> Value -> Builder
 fromValue st@PState{..} = go
   where
     go (Array v)  = fromCompound st ("[","]") fromValue (V.toList v)
     go (Object m) = fromCompound st ("{","}") fromPair (pstSort (H.toList m))
-    go v          = Aeson.fromValue v
+    go v          = Aeson.encodeToTextBuilder v
 
 fromCompound :: PState
              -> (Builder, Builder)
@@ -136,11 +149,7 @@
     st' = st { pstLevel = pstLevel + 1 }
 
 fromPair :: PState -> (Text, Value) -> Builder
-fromPair st (k,v) = Aeson.fromValue (toJSON k) <> ": " <> fromValue st v
+fromPair st (k,v) = Aeson.encodeToTextBuilder (toJSON k) <> ": " <> fromValue st v
 
 fromIndent :: PState -> Builder
 fromIndent PState{..} = mconcat $ replicate (pstIndent * pstLevel) " "
-
-(<>) :: Builder -> Builder -> Builder
-(<>) = mappend
-infixr 6 <>
diff --git a/aeson-pretty.cabal b/aeson-pretty.cabal
--- a/aeson-pretty.cabal
+++ b/aeson-pretty.cabal
@@ -1,5 +1,5 @@
 name:           aeson-pretty
-version:        0.7.1
+version:        0.7.2
 license:        BSD3
 license-file:   LICENSE
 category:       Text, Web, JSON, Pretty Printer
@@ -40,8 +40,8 @@
         Data.Aeson.Encode.Pretty
 
     build-depends:
-        aeson >= 0.6,
-        base == 4.*,
+        aeson >= 0.7,
+        base >= 4.5,
         bytestring >= 0.9,
         vector >= 0.9,
         text >= 0.11,
