diff --git a/src/if_py_both.h b/src/if_py_both.h
index 2ad19c4..7d3a26e 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -312,36 +312,30 @@
     static PyObject *
 OutputWritelines(OutputObject *self, PyObject *args)
 {
-    PyInt n;
-    PyInt i;
-    PyObject *list;
+    PyObject	*seq;
+    PyObject	*iterator;
+    PyObject	*item;
     int error = self->error;
 
-    if (!PyArg_ParseTuple(args, "O", &list))
+    if (!PyArg_ParseTuple(args, "O", &seq))
 	return NULL;
-    Py_INCREF(list);
 
-    if (!PyList_Check(list))
-    {
-	PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
-	Py_DECREF(list);
+    if (!(iterator = PyObject_GetIter(seq)))
 	return NULL;
-    }
 
-    n = PyList_Size(list);
-
-    for (i = 0; i < n; ++i)
+    while ((item = PyIter_Next(iterator)))
     {
-	PyObject *line = PyList_GetItem(list, i);
 	char *str = NULL;
 	PyInt len;
 
-	if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len))
+	if (!PyArg_Parse(item, "et#", ENC_OPT, &str, &len))
 	{
 	    PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
-	    Py_DECREF(list);
+	    Py_DECREF(iterator);
+	    Py_DECREF(item);
 	    return NULL;
 	}
+	Py_DECREF(item);
 
 	Py_BEGIN_ALLOW_THREADS
 	Python_Lock_Vim();
@@ -351,7 +345,12 @@
 	PyMem_Free(str);
     }
 
-    Py_DECREF(list);
+    Py_DECREF(iterator);
+
+    /* Iterator may have finished due to an exception */
+    if (PyErr_Occurred())
+	return NULL;
+
     Py_INCREF(Py_None);
     return Py_None;
 }
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 45c345f..cf97686 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -709,6 +709,16 @@
 del o
 EOF
 :"
+:"
+:" Test stdout/stderr
+:redir => messages
+:py sys.stdout.write('abc') ; sys.stdout.write('def')
+:py sys.stderr.write('abc') ; sys.stderr.write('def')
+:py sys.stdout.writelines(iter('abc'))
+:py sys.stderr.writelines(iter('abc'))
+:redir END
+:$put =string(substitute(messages, '\d\+', '', 'g'))
+:"
 :" Test exceptions
 :fun Exe(e)
 :   execute a:e
diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok
index 0b79b0d..fb94c3a 100644
--- a/src/testdir/test86.ok
+++ b/src/testdir/test86.ok
@@ -391,6 +391,13 @@
 list:__dir__,__members__,extend,locked
 function:__call__,__dir__,__members__,softspace
 output:__dir__,__members__,flush,softspace,write,writelines
+'
+abcdef
+line  :
+abcdef
+abc
+line  :
+abc'
 (<class 'vim.error'>, error('abc',))
 (<class 'vim.error'>, error('def',))
 (<class 'vim.error'>, error('ghi',))
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index 210c055..b1763ed 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -687,6 +687,16 @@
 del o
 EOF
 :"
+:"
+:" Test stdout/stderr
+:redir => messages
+:py sys.stdout.write('abc') ; sys.stdout.write('def')
+:py sys.stderr.write('abc') ; sys.stderr.write('def')
+:py sys.stdout.writelines(iter('abc'))
+:py sys.stderr.writelines(iter('abc'))
+:redir END
+:$put =string(substitute(messages, '\d\+', '', 'g'))
+:"
 :" Test exceptions
 :fun Exe(e)
 :   execute a:e
diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok
index 3126fd3..8ae7a8c 100644
--- a/src/testdir/test87.ok
+++ b/src/testdir/test87.ok
@@ -380,6 +380,13 @@
 list:__dir__,extend,locked
 function:__call__,__dir__,softspace
 output:__dir__,flush,softspace,write,writelines
+'
+abcdef
+line  :
+abcdef
+abc
+line  :
+abc'
 (<class 'vim.error'>, error('abc',))
 (<class 'vim.error'>, error('def',))
 (<class 'vim.error'>, error('ghi',))
diff --git a/src/version.c b/src/version.c
index c33c1a6..4d5539a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1057,
+/**/
     1056,
 /**/
     1055,
