updated for version 7.4.097
Problem:    Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution:   Update the valid cursor position. (Christian Brabandt)
diff --git a/src/ops.c b/src/ops.c
index bf65191..e1048c2 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3844,7 +3844,11 @@
 		    ml_replace(lnum, newp, FALSE);
 		    /* Place cursor on last putted char. */
 		    if (lnum == curwin->w_cursor.lnum)
+		    {
+			/* make sure curwin->w_virtcol is updated */
+			changed_cline_bef_curs();
 			curwin->w_cursor.col += (colnr_T)(totlen - 1);
+		    }
 		}
 #ifdef FEAT_VISUAL
 		if (VIsual_active)