diff --git a/include/rapidjson/writer.h b/include/rapidjson/writer.h
index 94f22dd5..ac522f6b 100644
--- a/include/rapidjson/writer.h
+++ b/include/rapidjson/writer.h
@@ -324,13 +324,17 @@ protected:
                 return true;
             }
             if (internal::Double(d).Sign()) {
-                PutReserve(*os_, 9);
+                PutReserve(*os_, 11);
+                PutUnsafe(*os_, '\"');
                 PutUnsafe(*os_, '-');
             }
-            else
-                PutReserve(*os_, 8);
+            else {
+                PutReserve(*os_, 10);
+                PutUnsafe(*os_, '\"');
+            }
             PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f');
             PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
+            PutUnsafe(*os_, '\"');
             return true;
         }

@@ -518,13 +522,17 @@ inline bool Writer<StringBuffer>::WriteDouble(double d) {
             return true;
         }
         if (internal::Double(d).Sign()) {
-            PutReserve(*os_, 9);
+            PutReserve(*os_, 11);
+            PutUnsafe(*os_, '\"');
             PutUnsafe(*os_, '-');
         }
-        else
-            PutReserve(*os_, 8);
+        else {
+            PutReserve(*os_, 10);
+            PutUnsafe(*os_, '\"');
+        }
         PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f');
         PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
+        PutUnsafe(*os_, '\"');
         return true;
     }
