patch 7.4.1995
Problem:    GUI: cursor drawn in wrong place if a timer callback causes a
            screen update. (David Samvelyan)
Solution:   Also redraw the cursor when it's blinking and on.
diff --git a/src/screen.c b/src/screen.c
index 684401c..2f08afb 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -432,9 +432,9 @@
 #ifdef FEAT_GUI
     if (gui.in_use)
     {
-	/* Don't update the cursor while it is blinking, it will get
-	 * updated soon and this avoids interrupting the blinking. */
-	if (!gui_mch_is_blinking())
+	/* Don't update the cursor when it is blinking and off to avoid
+	 * flicker. */
+	if (!gui_mch_is_blink_off())
 	    gui_update_cursor(FALSE, FALSE);
 	gui_mch_flush();
     }