updated for version 7.4a.007
Problem:    After "g$" with 'virtualedit' set, "k" moves to a different
            column.  (Dimitar Dimitrov)
Solution:   Set w_curswant. (Christian Brabandt)
diff --git a/src/normal.c b/src/normal.c
index b16ac87..762f319 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -8220,6 +8220,11 @@
 			i += ((curwin->w_virtcol - width1) / width2 + 1)
 								     * width2;
 		    coladvance((colnr_T)i);
+
+		    /* Make sure we stick in this column. */
+		    validate_virtcol();
+		    curwin->w_curswant = curwin->w_virtcol;
+		    curwin->w_set_curswant = FALSE;
 #if defined(FEAT_LINEBREAK) || defined(FEAT_MBYTE)
 		    if (curwin->w_cursor.col > 0 && curwin->w_p_wrap)
 		    {
@@ -8228,7 +8233,6 @@
 			 * the end of the line.  We do not want to advance to
 			 * the next screen line.
 			 */
-			validate_virtcol();
 			if (curwin->w_virtcol > (colnr_T)i)
 			    --curwin->w_cursor.col;
 		    }
diff --git a/src/version.c b/src/version.c
index c26845e..02086c7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    7,
+/**/
     6,
 /**/
     5,