diff --git a/src/drawscreen.c b/src/drawscreen.c
index 529792f..a0801e5 100644
--- a/src/drawscreen.c
+++ b/src/drawscreen.c
@@ -173,13 +173,19 @@
 	if (type != UPD_CLEAR)
 	{
 	    if (msg_scrolled > Rows - 5)	    // redrawing is faster
+	    {
 		type = UPD_NOT_VALID;
+		redraw_as_cleared();
+	    }
 	    else
 	    {
 		check_for_delay(FALSE);
 		if (screen_ins_lines(0, 0, msg_scrolled, (int)Rows, 0, NULL)
 								       == FAIL)
+		{
 		    type = UPD_NOT_VALID;
+		    redraw_as_cleared();
+		}
 		FOR_ALL_WINDOWS(wp)
 		{
 		    if (wp->w_winrow < msg_scrolled)
diff --git a/src/popupwin.c b/src/popupwin.c
index 8e74e42..0240994 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1938,6 +1938,20 @@
 #endif
 
 /*
+ * Mark all popup windows in the current tab and global for redrawing.
+ */
+    void
+popup_redraw_all(void)
+{
+    win_T	*wp;
+
+    FOR_ALL_POPUPWINS(wp)
+	wp->w_redr_type = UPD_NOT_VALID;
+    FOR_ALL_POPUPWINS_IN_TAB(curtab, wp)
+	wp->w_redr_type = UPD_NOT_VALID;
+}
+
+/*
  * Set the color for a notification window.
  */
     static void
diff --git a/src/proto/popupwin.pro b/src/proto/popupwin.pro
index a12cb3e..4d669ef 100644
--- a/src/proto/popupwin.pro
+++ b/src/proto/popupwin.pro
@@ -15,6 +15,7 @@
 int parse_completepopup(win_T *wp);
 void popup_set_wantpos_cursor(win_T *wp, int width, dict_T *d);
 void popup_set_wantpos_rowcol(win_T *wp, int row, int col);
+void popup_redraw_all(void);
 void f_popup_clear(typval_T *argvars, typval_T *rettv);
 void f_popup_create(typval_T *argvars, typval_T *rettv);
 void f_popup_atcursor(typval_T *argvars, typval_T *rettv);
diff --git a/src/proto/screen.pro b/src/proto/screen.pro
index 81e5e10..2b77537 100644
--- a/src/proto/screen.pro
+++ b/src/proto/screen.pro
@@ -31,6 +31,7 @@
 void screenalloc(int doclear);
 void free_screenlines(void);
 void screenclear(void);
+void redraw_as_cleared(void);
 void line_was_clobbered(int screen_lnum);
 int can_clear(char_u *p);
 void screen_start(void);
diff --git a/src/screen.c b/src/screen.c
index a1741ca..eb01fdb 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -49,7 +49,7 @@
 static int	screen_attr = 0;
 
 static void screen_char_2(unsigned off, int row, int col);
-static void screenclear2(void);
+static void screenclear2(int doclear);
 static void lineclear(unsigned off, int width, int attr);
 static void lineinvalid(unsigned off, int width);
 static int win_do_lines(win_T *wp, int row, int line_count, int mayclear, int del, int clear_attr);
@@ -2906,7 +2906,7 @@
 
     set_must_redraw(UPD_CLEAR);	// need to clear the screen later
     if (doclear)
-	screenclear2();
+	screenclear2(TRUE);
 #ifdef FEAT_GUI
     else if (gui.in_use
 	    && !gui.starting
@@ -2969,16 +2969,30 @@
 #endif
 }
 
+/*
+ * Clear the screen.
+ * May delay if there is something the user should read.
+ * Allocated the screen for resizing if needed.
+ */
     void
 screenclear(void)
 {
     check_for_delay(FALSE);
     screenalloc(FALSE);	    // allocate screen buffers if size changed
-    screenclear2();	    // clear the screen
+    screenclear2(TRUE);	    // clear the screen
+}
+
+/*
+ * Do not clear the screen but mark everything for redraw.
+ */
+    void
+redraw_as_cleared(void)
+{
+    screenclear2(FALSE);
 }
 
     static void
-screenclear2(void)
+screenclear2(int doclear)
 {
     int	    i;
 
@@ -3007,7 +3021,7 @@
 	LineWraps[i] = FALSE;
     }
 
-    if (can_clear(T_CL))
+    if (doclear && can_clear(T_CL))
     {
 	out_str(T_CL);		// clear the display
 	clear_cmdline = FALSE;
@@ -3023,7 +3037,10 @@
 
     screen_cleared = TRUE;	// can use contents of ScreenLines now
 
-    win_rest_invalid(firstwin);
+    win_rest_invalid(firstwin);	// redraw all regular windows
+#ifdef FEAT_PROP_POPUP
+    popup_redraw_all();		// redraw all popup windows
+#endif
     redraw_cmdline = TRUE;
     redraw_tabline = TRUE;
     if (must_redraw == UPD_CLEAR)	// no need to clear again
diff --git a/src/testdir/dumps/Test_popupwin_win_execute.dump b/src/testdir/dumps/Test_popupwin_win_execute.dump
index f554859..b890a28 100644
--- a/src/testdir/dumps/Test_popupwin_win_execute.dump
+++ b/src/testdir/dumps/Test_popupwin_win_execute.dump
@@ -2,7 +2,7 @@
 |~+0#4040ff13&| @73
 |~| @73
 |~| @73
-|~| @31| +0#0000000&@8| +0#4040ff13&@32
+|~| @31|s+0#0000001#ffd7ff255|o|m|e| |t|e|x|t| +0#4040ff13#ffffff0@32
 |~| @73
 |~| @73
 |~| @73
diff --git a/src/version.c b/src/version.c
index 4dbe100..6cd7bd2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -708,6 +708,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    317,
+/**/
     316,
 /**/
     315,
