diff --git a/Data/Aeson/Types/Instances.hs b/Data/Aeson/Types/Instances.hs
--- a/Data/Aeson/Types/Instances.hs
+++ b/Data/Aeson/Types/Instances.hs
@@ -959,7 +959,7 @@
           ToJSON m, ToJSON n, ToJSON o) =>
          ToJSON (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
     toJSON (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) = Array $ V.create $ do
-      mv <- VM.unsafeNew 14
+      mv <- VM.unsafeNew 15
       VM.unsafeWrite mv 0 (toJSON a)
       VM.unsafeWrite mv 1 (toJSON b)
       VM.unsafeWrite mv 2 (toJSON c)
@@ -986,7 +986,7 @@
         let n = V.length ary
         in if n /= 15
            then fail $ "cannot unpack array of length " ++
-                       show n ++ " into a 14-tuple"
+                       show n ++ " into a 15-tuple"
            else (,,,,,,,,,,,,,,)
                 <$> parseJSON (V.unsafeIndex ary 0)
                 <*> parseJSON (V.unsafeIndex ary 1)
diff --git a/aeson.cabal b/aeson.cabal
--- a/aeson.cabal
+++ b/aeson.cabal
@@ -1,5 +1,5 @@
 name:            aeson
-version:         0.8.0.1
+version:         0.8.0.2
 license:         BSD3
 license-file:    LICENSE
 category:        Text, Web, JSON
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.8.0.2
+
+* Fix ToJSON instance for 15-tuples (see #223).
+
 0.8.0.1
 
 * Support time-1.5.
