diff --git a/Lib/test/test_StringIO.py b/Lib/test/test_StringIO.py
index e74a427..c61f7cc 100644
--- a/Lib/test/test_StringIO.py
+++ b/Lib/test/test_StringIO.py
@@ -44,6 +44,13 @@
         f.seek(0)
         self.assertEqual(f.getvalue(), 'abc')
 
+    def test_writelines_error(self):
+        def errorGen():
+            yield 'a'
+            raise KeyboardInterrupt()
+        f = self.MODULE.StringIO()
+        self.assertRaises(KeyboardInterrupt, f.writelines, errorGen())
+
     def test_truncate(self):
         eq = self.assertEqual
         f = self.MODULE.StringIO()
diff --git a/Misc/ACKS b/Misc/ACKS
index bc9ee2b..c1cb855 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -50,6 +50,7 @@
 Thomas Bellman
 Juan M. Bello Rivas
 Alexander Belopolsky
+Andrew Bennetts
 Andy Bensky
 Michel Van den Bergh
 Eric Beser
diff --git a/Misc/NEWS b/Misc/NEWS
index 9144f5d..93c2ba0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -149,6 +149,9 @@
 Extension Modules
 -----------------
 
+- Patches #1298449 and #1298499: Add some missing checks for error
+  returns in cStringIO.c.
+
 - Patch #1297028: fix segfault if call type on MultibyteCodec,
   MultibyteStreamReader, or MultibyteStreamWriter
 
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index b7333fd..9ed77d8 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -241,7 +241,10 @@
 		line = PyString_FromStringAndSize (output, n);
 		if (!line) 
                         goto err;
-		PyList_Append (result, line);
+		if (PyList_Append (result, line) == -1) {
+			Py_DECREF (line);
+			goto err;
+		}
 		Py_DECREF (line);
                 length += n;
                 if (hint > 0 && length >= hint)
@@ -440,13 +443,18 @@
 			Py_DECREF(it);
 			Py_DECREF(s);
 			return NULL;
-		}
-		Py_DECREF(s);
-	}
-	Py_DECREF(it);
-	Py_RETURN_NONE;
-}
+               }
+               Py_DECREF(s);
+       }
 
+       Py_DECREF(it);
+
+       /* See if PyIter_Next failed */
+       if (PyErr_Occurred())
+               return NULL;
+
+       Py_RETURN_NONE;
+}
 static struct PyMethodDef O_methods[] = {
   /* Common methods: */
   {"flush",     (PyCFunction)IO_flush,    METH_NOARGS,  IO_flush__doc__},
