updated for version 7.0-042
diff --git a/src/ops.c b/src/ops.c
index 7fb7f58..9e7927d 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3493,8 +3493,15 @@
 # endif
 	if (flags & PUT_CURSEND)
 	{
+	    colnr_T len;
+
 	    curwin->w_cursor = curbuf->b_op_end;
 	    curwin->w_cursor.col++;
+
+	    /* in Insert mode we might be after the NUL, correct for that */
+	    len = (colnr_T)STRLEN(ml_get_curline());
+	    if (curwin->w_cursor.col > len)
+		curwin->w_cursor.col = len;
 	}
 	else
 	    curwin->w_cursor.lnum = lnum;
diff --git a/src/version.c b/src/version.c
index 48e0fd6..b5698aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    42,
+/**/
     41,
 /**/
     40,