updated for version 7.3.652
Problem:    Workaround for Python crash isn't perfect.
Solution:   Change the type of the length argument. (Sean Estabrooks)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 60375d1..931ecb9 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -74,18 +74,13 @@
     static PyObject *
 OutputWrite(PyObject *self, PyObject *args)
 {
-    int len;
+    Py_ssize_t len;
     char *str = NULL;
     int error = ((OutputObject *)(self))->error;
 
     if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
 	return NULL;
 
-    /* TODO: This works around a gcc optimizer problem and avoids Vim
-     * from crashing.  Should find a real solution. */
-    if (str == NULL)
-	return NULL;
-
     Py_BEGIN_ALLOW_THREADS
     Python_Lock_Vim();
     writer((writefn)(error ? emsg : msg), (char_u *)str, len);
diff --git a/src/version.c b/src/version.c
index 6afaf8d..37791e6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    652,
+/**/
     651,
 /**/
     650,