diff --git a/src/evalfunc.c b/src/evalfunc.c
index 570aef8..9bdeb52 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2610,7 +2610,13 @@
 		    ++ex_normal_busy;
 		exec_normal(TRUE, lowlevel, TRUE);
 		if (!dangerous)
+		{
 		    --ex_normal_busy;
+#ifdef FEAT_PROP_POPUP
+		    if (ex_normal_busy == 0)
+			ex_normal_busy_done = FALSE;
+#endif
+		}
 
 		msg_scroll |= save_msg_scroll;
 	    }
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index bc01b69..7f96388 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8030,6 +8030,10 @@
 
     restore_current_state(&save_state);
     --ex_normal_busy;
+#ifdef FEAT_PROP_POPUP
+    if (ex_normal_busy == 0)
+	ex_normal_busy_done = FALSE;
+#endif
     setmouse();
 #ifdef CURSOR_SHAPE
     ui_cursor_shape();		// may show different cursor shape
diff --git a/src/getchar.c b/src/getchar.c
index e42fc33..2c7bd1f 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1888,7 +1888,7 @@
     }
 #endif
 #ifdef FEAT_PROP_POPUP
-    if (popup_do_filter(c))
+    if (!ex_normal_busy_done && popup_do_filter(c))
     {
 	if (c == Ctrl_C)
 	    got_int = FALSE;  // avoid looping
@@ -3168,6 +3168,10 @@
 			timedout = TRUE;
 			continue;
 		    }
+#ifdef FEAT_PROP_POPUP
+		    ex_normal_busy_done = TRUE;
+#endif
+
 		    // When 'insertmode' is set, ESC just beeps in Insert
 		    // mode.  Use CTRL-L to make edit() return.
 		    // For the command line only CTRL-C always breaks it.
diff --git a/src/globals.h b/src/globals.h
index 94164bb..eb33507 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1152,6 +1152,11 @@
 		    ;
 EXTERN int	ex_normal_busy INIT(= 0); // recursiveness of ex_normal()
 EXTERN int	ex_normal_lock INIT(= 0); // forbid use of ex_normal()
+#ifdef FEAT_PROP_POPUP
+// Set to TRUE when ex_normal_busy is set and out of typeahead.
+EXTERN int	ex_normal_busy_done INIT(= FALSE);
+#endif
+
 #ifdef FEAT_EVAL
 EXTERN int	ignore_script INIT(= FALSE);  // ignore script input
 #endif
diff --git a/src/menu.c b/src/menu.c
index fd811de..f383ddd 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -2398,6 +2398,10 @@
 							   menu->silent[idx]);
 	    restore_current_state(&save_state);
 	    --ex_normal_busy;
+#ifdef FEAT_PROP_POPUP
+	    if (ex_normal_busy == 0)
+		ex_normal_busy_done = FALSE;
+#endif
 	}
 	else
 	    ins_typebuf(menu->strings[idx], menu->noremap[idx], 0,
diff --git a/src/testdir/dumps/Test_popupwin_normal_cmd.dump b/src/testdir/dumps/Test_popupwin_normal_cmd.dump
new file mode 100644
index 0000000..f554859
--- /dev/null
+++ b/src/testdir/dumps/Test_popupwin_normal_cmd.dump
@@ -0,0 +1,10 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @31| +0#0000000&@8| +0#4040ff13&@32
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@56|0|,|0|-|1| @8|A|l@1| 
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 333e9a2..6607ea2 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1539,6 +1539,23 @@
   call popup_clear()
 endfunc
 
+" this tests that the "ex_normal_busy_done" flag works
+func Test_popup_filter_normal_cmd()
+  CheckScreendump
+
+  let lines =<< trim END
+      let g:winid = popup_create('some text', {'filter': 'invalidfilter'})
+      call timer_start(0, {-> win_execute(g:winid, 'norm! zz')})
+  END
+  call writefile(lines, 'XtestPopupNormal')
+  let buf = RunVimInTerminal('-S XtestPopupNormal', #{rows: 10})
+  call TermWait(buf, 100)
+  call VerifyScreenDump(buf, 'Test_popupwin_normal_cmd', {})
+
+  call StopVimInTerminal(buf)
+  call delete('XtestPopupNormal')
+endfunc
+
 func ShowDialog(key, result)
   let s:cb_res = 999
   let winid = popup_dialog('do you want to quit (Yes/no)?', #{
diff --git a/src/version.c b/src/version.c
index a9852e9..aa821b2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1729,
+/**/
     1728,
 /**/
     1727,
