diff --git a/src/gui.c b/src/gui.c
index 0d858ec..6f1d8f5 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -1964,12 +1964,13 @@
  * gui_can_update_cursor() afterwards.
  */
     void
-gui_dont_update_cursor(void)
+gui_dont_update_cursor(int undraw)
 {
     if (gui.in_use)
     {
 	/* Undraw the cursor now, we probably can't do it after the change. */
-	gui_undraw_cursor();
+	if (undraw)
+	    gui_undraw_cursor();
 	can_update_cursor = FALSE;
     }
 }
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 7c63a49..a53fa12 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -6698,7 +6698,7 @@
      * we don't want it to be.	I'm not sure if it's correct to call
      * gui_dont_update_cursor() at this point but it works as a quick
      * fix for now. */
-    gui_dont_update_cursor();
+    gui_dont_update_cursor(TRUE);
 
     do
     {
diff --git a/src/proto/gui.pro b/src/proto/gui.pro
index 7a0176f..26466ae 100644
--- a/src/proto/gui.pro
+++ b/src/proto/gui.pro
@@ -23,7 +23,7 @@
 void gui_clear_block(int row1, int col1, int row2, int col2);
 void gui_update_cursor_later(void);
 void gui_write(char_u *s, int len);
-void gui_dont_update_cursor(void);
+void gui_dont_update_cursor(int undraw);
 void gui_can_update_cursor(void);
 int gui_outstr_nowrap(char_u *s, int len, int flags, guicolor_T fg, guicolor_T bg, int back);
 void gui_undraw_cursor(void);
diff --git a/src/screen.c b/src/screen.c
index f8d283f..0458ed7 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -498,6 +498,7 @@
     int		did_one;
 #endif
 #ifdef FEAT_GUI
+    int		did_undraw = FALSE;
     int		gui_cursor_col;
     int		gui_cursor_row;
 #endif
@@ -697,11 +698,12 @@
 		/* Remove the cursor before starting to do anything, because
 		 * scrolling may make it difficult to redraw the text under
 		 * it. */
-		if (gui.in_use)
+		if (gui.in_use && wp == curwin)
 		{
 		    gui_cursor_col = gui.cursor_col;
 		    gui_cursor_row = gui.cursor_row;
 		    gui_undraw_cursor();
+		    did_undraw = TRUE;
 		}
 #endif
 	    }
@@ -757,7 +759,7 @@
     if (gui.in_use)
     {
 	out_flush();	/* required before updating the cursor */
-	if (did_one && !gui_mch_is_blink_off())
+	if (did_undraw && !gui_mch_is_blink_off())
 	{
 	    /* Put the GUI position where the cursor was, gui_update_cursor()
 	     * uses that. */
@@ -9679,7 +9681,7 @@
 #ifdef FEAT_GUI
     /* Don't update the GUI cursor here, ScreenLines[] is invalid until the
      * scrolling is actually carried out. */
-    gui_dont_update_cursor();
+    gui_dont_update_cursor(row + off <= gui.cursor_row);
 #endif
 
     if (*T_CCS != NUL)	   /* cursor relative to region */
@@ -9781,10 +9783,10 @@
 }
 
 /*
- * delete lines on the screen and update ScreenLines[]
- * 'end' is the line after the scrolled part. Normally it is Rows.
- * When scrolling region used 'off' is the offset from the top for the region.
- * 'row' and 'end' are relative to the start of the region.
+ * Delete lines on the screen and update ScreenLines[].
+ * "end" is the line after the scrolled part. Normally it is Rows.
+ * When scrolling region used "off" is the offset from the top for the region.
+ * "row" and "end" are relative to the start of the region.
  *
  * Return OK for success, FAIL if the lines are not deleted.
  */
@@ -9900,7 +9902,8 @@
 #ifdef FEAT_GUI
     /* Don't update the GUI cursor here, ScreenLines[] is invalid until the
      * scrolling is actually carried out. */
-    gui_dont_update_cursor();
+    gui_dont_update_cursor(gui.cursor_row >= row + off
+						&& gui.cursor_row < end + off);
 #endif
 
     if (*T_CCS != NUL)	    /* cursor relative to region */
diff --git a/src/version.c b/src/version.c
index 4f96443..b324c12 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2199,
+/**/
     2198,
 /**/
     2197,
