diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.2.1
+
+- Fixed backward compatibility with aeson-0.10.
+
 ## 0.4.2
 
 - Support for aeson-0.10.
diff --git a/smoothie.cabal b/smoothie.cabal
--- a/smoothie.cabal
+++ b/smoothie.cabal
@@ -1,5 +1,5 @@
 name:                smoothie
-version:             0.4.2
+version:             0.4.2.1
 synopsis:            Smooth curves via several interpolation modes
 description:         This package exports several splines you can use
                      to interpolate points in between. It includes instances for
@@ -29,6 +29,9 @@
                      , FlexibleInstances
                      , MultiWayIf
                      , ScopedTypeVariables
+
+  other-extensions:    CPP
+                     , OverloadedStrings
 
   exposed-modules:     Data.Spline
                      , Data.Spline.Curve
diff --git a/src/Data/Spline/Curve.hs b/src/Data/Spline/Curve.hs
--- a/src/Data/Spline/Curve.hs
+++ b/src/Data/Spline/Curve.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -53,8 +53,12 @@
     pure $ \sampler -> spline sampler keys
 
 instance (ToJSON (a s)) => ToJSON (Spline a s) where
+#if MIN_VERSION_aeson(0,10,0)
   toJSON     = genericToJSON defaultOptions
   toEncoding = genericToEncoding defaultOptions
+#else
+  toJSON = Array . fmap toJSON . splineKeys
+#endif
 
 -- |Build a @'Spline' a s@.
 --
