updated for version 7.0226
diff --git a/src/ops.c b/src/ops.c
index 82a7595..fce995f 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3733,6 +3733,9 @@
     /* If the cursor is past the end of the line put it at the end. */
     if (gchar_cursor() == NUL
 	    && curwin->w_cursor.col > 0
+#ifdef FEAT_VIRTUALEDIT
+	    && (ve_flags & VE_ONEMORE) == 0
+#endif
 	    && !(restart_edit || (State & INSERT)))
     {
 	/* Put the cursor on the last character in the line. */