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
@@ -197,7 +197,9 @@
 
 fromNumber :: PState -> S.Scientific -> Builder
 fromNumber st x = case pNumFormat st of
-  Generic    -> Aeson.encodeToTextBuilder $ Number x
+  Generic
+    | (x > 1.0e19 || x < -1.0e19) -> formatScientificBuilder S.Exponent Nothing x
+    | otherwise -> Aeson.encodeToTextBuilder $ Number x
   Scientific -> formatScientificBuilder S.Exponent Nothing x
   Decimal    -> formatScientificBuilder S.Fixed Nothing x
   Custom f   -> f x
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.8.3
+version:        0.8.4
 license:        BSD3
 license-file:   LICENSE
 category:       Text, Web, JSON, Pretty Printer
