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. */