updated for version 7.0-125
diff --git a/src/normal.c b/src/normal.c
index d1dc05f..174570c 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1477,14 +1477,17 @@
 	}
 	else if (VIsual_active)
 	{
-	    /* Save the current VIsual area for '< and '> marks, and "gv" */
-	    curbuf->b_visual.vi_start = VIsual;
-	    curbuf->b_visual.vi_end = curwin->w_cursor;
-	    curbuf->b_visual.vi_mode = VIsual_mode;
-	    curbuf->b_visual.vi_curswant = curwin->w_curswant;
+	    if (!gui_yank)
+	    {
+		/* Save the current VIsual area for '< and '> marks, and "gv" */
+		curbuf->b_visual.vi_start = VIsual;
+		curbuf->b_visual.vi_end = curwin->w_cursor;
+		curbuf->b_visual.vi_mode = VIsual_mode;
+		curbuf->b_visual.vi_curswant = curwin->w_curswant;
 # ifdef FEAT_EVAL
-	    curbuf->b_visual_mode_eval = VIsual_mode;
+		curbuf->b_visual_mode_eval = VIsual_mode;
 # endif
+	    }
 
 	    /* In Select mode, a linewise selection is operated upon like a
 	     * characterwise selection. */
diff --git a/src/version.c b/src/version.c
index f148a35..6ff099e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    125,
+/**/
     124,
 /**/
     123,