diff --git a/src/if_python.c b/src/if_python.c
index adcb52d2bdb97577210d887823a8277805cb2423..0e06d36e4bb24e45b0037682f2c1a9cbbbaf99c3 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -2410,6 +2410,8 @@ py_fix_cursor(int lo, int hi, int extra)
 	    curwin->w_cursor.lnum = lo;
 	    check_cursor();
 	}
+	else
+	    check_cursor_col();
 	changed_cline_bef_curs();
     }
     invalidate_botline();
@@ -2487,6 +2489,10 @@ SetBufferLine(buf_T *buf, int n, PyObject *line, int *len_change)
 
 	curbuf = savebuf;
 
+	/* Check that the cursor is not beyond the end of the line now. */
+	if (buf == curwin->w_buffer)
+	    check_cursor_col();
+
 	if (PyErr_Occurred() || VimErrorCheck())
 	    return FAIL;
 
diff --git a/src/version.c b/src/version.c
index 331e75ff5ae20b36eeda0f356b13a5b4d3f1a16d..77f71c87a1a15529ac70df9a87f71488ca01a644 100644
--- a/src/version.c
+++ b/src/version.c
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    209,
 /**/
     208,
 /**/