diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 2463ed5..280bf83 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -37,6 +37,8 @@
 static int compl_selected;
 #endif
 
+#define SHOW_FILE_TEXT(m) (showtail ? sm_gettail(files_found[m]) : files_found[m])
+
     static int
 sort_func_compare(const void *s1, const void *s2)
 {
@@ -256,6 +258,54 @@
 }
 
 #if defined(FEAT_WILDMENU) || defined(PROTO)
+
+/*
+ * Create and display a cmdline completion popup menu with items from
+ * 'files_found'.
+ */
+    static int
+cmdline_pum_create(
+	cmdline_info_T	*ccline,
+	expand_T	*xp,
+	char_u		**files_found,
+	int		num_files,
+	int		showtail)
+{
+    int		i;
+    int		columns;
+
+    // Add all the completion matches
+    compl_match_arraysize = num_files;
+    compl_match_array = ALLOC_MULT(pumitem_T, compl_match_arraysize);
+    for (i = 0; i < num_files; i++)
+    {
+	compl_match_array[i].pum_text = SHOW_FILE_TEXT(i);
+	compl_match_array[i].pum_info = NULL;
+	compl_match_array[i].pum_extra = NULL;
+	compl_match_array[i].pum_kind = NULL;
+    }
+
+    // Compute the popup menu starting column
+    compl_startcol = vim_strsize(ccline->cmdbuff) + 1;
+    columns = vim_strsize(xp->xp_pattern);
+    if (showtail)
+    {
+	columns += vim_strsize(sm_gettail(files_found[0]));
+	columns -= vim_strsize(files_found[0]);
+    }
+    if (columns >= compl_startcol)
+	compl_startcol = 0;
+    else
+	compl_startcol -= columns;
+
+    // no default selection
+    compl_selected = -1;
+
+    cmdline_pum_display();
+
+    return EXPAND_OK;
+}
+
 /*
  * Display the cmdline completion matches in a popup menu
  */
@@ -264,13 +314,17 @@
     pum_display(compl_match_array, compl_match_arraysize, compl_selected);
 }
 
+/*
+ * Returns TRUE if the cmdline completion popup menu is being displayed.
+ */
 int cmdline_pum_active(void)
 {
     return p_wmnu && pum_visible() && compl_match_array != NULL;
 }
 
 /*
- * Remove the cmdline completion popup menu
+ * Remove the cmdline completion popup menu (if present), free the list of
+ * items and refresh the screen.
  */
 void cmdline_pum_remove(void)
 {
@@ -285,6 +339,10 @@
     wildmenu_cleanup(cclp);
 }
 
+/*
+ * Returns the starting column number to use for the cmdline completion popup
+ * menu.
+ */
 int cmdline_compl_startcol(void)
 {
     return compl_startcol;
@@ -581,7 +639,6 @@
 showmatches(expand_T *xp, int wildmenu UNUSED)
 {
     cmdline_info_T	*ccline = get_cmdline_info();
-#define L_SHOWFILE(m) (showtail ? sm_gettail(files_found[m]) : files_found[m])
     int		num_files;
     char_u	**files_found;
     int		i, j, k;
@@ -612,31 +669,8 @@
 
 #ifdef FEAT_WILDMENU
     if (wildmenu && vim_strchr(p_wop, WOP_PUM) != NULL)
-    {
-	compl_match_arraysize = num_files;
-	compl_match_array = ALLOC_MULT(pumitem_T, compl_match_arraysize);
-	for (i = 0; i < num_files; i++)
-	{
-	    compl_match_array[i].pum_text = L_SHOWFILE(i);
-	    compl_match_array[i].pum_info = NULL;
-	    compl_match_array[i].pum_extra = NULL;
-	    compl_match_array[i].pum_kind = NULL;
-	}
-	compl_startcol = vim_strsize(ccline->cmdbuff) + 1;
-	columns = vim_strsize(xp->xp_pattern);
-	if (showtail)
-	{
-	    columns += vim_strsize(sm_gettail(files_found[0]));
-	    columns -= vim_strsize(files_found[0]);
-	}
-	if (columns >= compl_startcol)
-	    compl_startcol = 0;
-	else
-	    compl_startcol -= columns;
-	compl_selected = -1;
-	cmdline_pum_display();
-	return EXPAND_OK;
-    }
+	// cmdline completion popup menu (with wildoptions=pum)
+	return cmdline_pum_create(ccline, xp, files_found, num_files, showtail);
 #endif
 
 #ifdef FEAT_WILDMENU
@@ -674,7 +708,7 @@
 		j = vim_strsize(NameBuff);
 	    }
 	    else
-		j = vim_strsize(L_SHOWFILE(i));
+		j = vim_strsize(SHOW_FILE_TEXT(i));
 	    if (j > maxlen)
 		maxlen = j;
 	}
@@ -746,7 +780,7 @@
 			// Expansion was done here, file names are literal.
 			j = mch_isdir(files_found[k]);
 		    if (showtail)
-			p = L_SHOWFILE(k);
+			p = SHOW_FILE_TEXT(k);
 		    else
 		    {
 			home_replace(NULL, files_found[k], NameBuff, MAXPATHL,
@@ -757,7 +791,7 @@
 		else
 		{
 		    j = FALSE;
-		    p = L_SHOWFILE(k);
+		    p = SHOW_FILE_TEXT(k);
 		}
 		lastlen = msg_outtrans_attr(p, j ? attr : 0);
 	    }
@@ -2726,18 +2760,21 @@
     int c = key;
 
 #ifdef FEAT_WILDMENU
-    if (p_wmnu && cmdline_pum_active())
+    if (cmdline_pum_active())
     {
-	// When the popup menu is used, Up/Down keys go to the previous and
-	// next items in the menu and Left/Right keys go up/down a directory.
-	if (c == K_UP)
-	    c = K_LEFT;
-	else if (c == K_DOWN)
-	    c = K_RIGHT;
-	else if (c == K_LEFT)
-	    c = K_UP;
-	else if (c == K_RIGHT)
-	    c = K_DOWN;
+	// When the popup menu is used for cmdline completion:
+	//   Up	  : go to the previous item in the menu
+	//   Down : go to the next item in the menu
+	//   Left : go to the parent directory
+	//   Right: list the files in the selected directory
+	switch (c)
+	{
+	    case K_UP:	  c = K_LEFT; break;
+	    case K_DOWN:  c = K_RIGHT; break;
+	    case K_LEFT:  c = K_UP; break;
+	    case K_RIGHT: c = K_DOWN; break;
+	    default:	  break;
+	}
     }
 #endif
 
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 63f1c5d..f9b5b60 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1860,6 +1860,9 @@
 
 	if (cmdline_pum_active())
 	{
+	    // Ctrl-Y: Accept the current selection and close the popup menu.
+	    // Ctrl-E: cancel the cmdline popup menu and return the original
+	    // text.
 	    if (c == Ctrl_E || c == Ctrl_Y)
 	    {
 		int	wild_type;
@@ -1869,16 +1872,13 @@
 		if (nextwild(&xpc, wild_type, WILD_NO_BEEP,
 							firstc != '@') == FAIL)
 		    break;
-		cmdline_pum_cleanup(&ccline);
-		xpc.xp_context = EXPAND_NOTHING;
-		goto cmdline_changed;
+		c = Ctrl_E;
 	    }
 	}
 #endif
 
 	// free expanded names when finished walking through matches
-	if (xpc.xp_numfiles != -1
-		&& !(c == p_wc && KeyTyped) && c != p_wcm
+	if (!(c == p_wc && KeyTyped) && c != p_wcm
 		&& c != Ctrl_N && c != Ctrl_P && c != Ctrl_A
 		&& c != Ctrl_L)
 	{
@@ -1886,7 +1886,8 @@
 	    if (cmdline_pum_active())
 		cmdline_pum_remove();
 #endif
-	    (void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
+	    if (xpc.xp_numfiles != -1)
+		(void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
 	    did_wild_list = FALSE;
 #ifdef FEAT_WILDMENU
 	    if (!p_wmnu || (c != K_UP && c != K_DOWN))
@@ -1982,13 +1983,16 @@
 	{
 	    if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK)
 	    {
+		if (xpc.xp_numfiles > 1)
+		{
 #ifdef FEAT_WILDMENU
-		// Trigger the popup menu when wildoptions=pum
-		showmatches(&xpc,
-			p_wmnu && ((wim_flags[wim_index] & WIM_LIST) == 0));
+		    // Trigger the popup menu when wildoptions=pum
+		    showmatches(&xpc, p_wmnu
+			    && ((wim_flags[wim_index] & WIM_LIST) == 0));
 #else
-		(void)showmatches(&xpc, FALSE);
+		    (void)showmatches(&xpc, FALSE);
 #endif
+		}
 		if (nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
 			&& nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
 		    goto cmdline_changed;
@@ -2259,15 +2263,16 @@
 		goto cmdline_not_changed;
 
 	case Ctrl_A:	    // all matches
-		if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
-		    break;
 #ifdef FEAT_WILDMENU
 		if (cmdline_pum_active())
-		{
+		    // As Ctrl-A completes all the matches, close the popup
+		    // menu (if present)
 		    cmdline_pum_cleanup(&ccline);
-		    xpc.xp_context = EXPAND_NOTHING;
-		}
 #endif
+		if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
+		    break;
+		xpc.xp_context = EXPAND_NOTHING;
+		did_wild_list = FALSE;
 		goto cmdline_changed;
 
 	case Ctrl_L:
diff --git a/src/popupmenu.c b/src/popupmenu.c
index cf2f2ef..18f2480 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -117,6 +117,7 @@
 	// can decide when to reposition the popup menu.
 	pum_window = curwin;
 	if (State == CMDLINE)
+	    // cmdline completion popup menu
 	    pum_win_row = cmdline_row;
 	else
 	    pum_win_row = curwin->w_wrow + W_WINROW(curwin);
@@ -220,6 +221,7 @@
 	// Calculate column
 #ifdef FEAT_WILDMENU
 	if (State == CMDLINE)
+	    // cmdline completion popup menu
 	    cursor_col = cmdline_compl_startcol();
 	else
 #endif
diff --git a/src/testdir/dumps/Test_wildmenu_pum_33.dump b/src/testdir/dumps/Test_wildmenu_pum_33.dump
new file mode 100644
index 0000000..3955edb
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_33.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |j|u|m|p| |l|i|s|t| |p|l|a|c|e| |u|n|d|e|f|i|n|e| |u|n|p|l|a|c|e|x> @28
diff --git a/src/testdir/dumps/Test_wildmenu_pum_34.dump b/src/testdir/dumps/Test_wildmenu_pum_34.dump
new file mode 100644
index 0000000..e28b913
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_34.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |j|u|m|p| |l|i|s|t| |p|l|a|c|e| |u|n|d|e|f|i|n|e| |u|n|p|l|a|c>e| @29
diff --git a/src/testdir/dumps/Test_wildmenu_pum_35.dump b/src/testdir/dumps/Test_wildmenu_pum_35.dump
new file mode 100644
index 0000000..3fbd30a
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_35.dump
@@ -0,0 +1,10 @@
+|~+0#4040ff13#ffffff0| @73
+|:+0#0000000&|T|c|m|d| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3| |a@3
+| |a@1>a@1| @69
diff --git a/src/testdir/dumps/Test_wildmenu_pum_36.dump b/src/testdir/dumps/Test_wildmenu_pum_36.dump
new file mode 100644
index 0000000..9d7b6b0
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_36.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|e| |X|d|i|r|B|/| |X|f|i|l|e|B> @58
diff --git a/src/testdir/dumps/Test_wildmenu_pum_37.dump b/src/testdir/dumps/Test_wildmenu_pum_37.dump
new file mode 100644
index 0000000..5eef94d
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_37.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|s|i|g|n| |d|e|f|i|n|e| |j|u|m|p| |l|i|s|t| |p|l|a|c|e| |u|n|d|e|f|i|n|e| |u|n|p|l|a|c|e> @29
diff --git a/src/testdir/screendump.vim b/src/testdir/screendump.vim
index 8ea708a..8fc496d 100644
--- a/src/testdir/screendump.vim
+++ b/src/testdir/screendump.vim
@@ -27,6 +27,9 @@
   " Starting a terminal to make a screendump is always considered flaky.
   let g:test_is_flaky = 1
 
+  " wait for the pending updates to be handled.
+  call TermWait(a:buf)
+
   " Redraw to execute the code that updates the screen.  Otherwise we get the
   " text and attributes only from the internal buffer.
   redraw
diff --git a/src/testdir/test_bufline.vim b/src/testdir/test_bufline.vim
index 04653ba..3acf7c9 100644
--- a/src/testdir/test_bufline.vim
+++ b/src/testdir/test_bufline.vim
@@ -216,7 +216,6 @@
   END
   call writefile(lines, 'XscriptMatchCommon')
   let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_appendbufline_1', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index c40d653..8c5928f 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -91,7 +91,9 @@
 
   cnoremap <expr> <F2> wildmenumode()
   call feedkeys(":cd Xdir\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
-  call assert_equal('"cd Xdir1/1', @:)
+  call assert_equal('"cd Xdir1/0', @:)
+  call feedkeys(":e Xdir1/\<Tab>\<F2>\<C-B>\"\<CR>", 'tx')
+  call assert_equal('"e Xdir1/Xdir2/1', @:)
   cunmap <F2>
 
   " cleanup
@@ -1976,39 +1978,41 @@
     set shm+=I
     set noruler
     set noshowcmd
+
+    func CmdCompl(a, b, c)
+      return repeat(['aaaa'], 120)
+    endfunc
+    command -nargs=* -complete=customlist,CmdCompl Tcmd
   [CODE]
   call writefile(commands, 'Xtest')
 
   let buf = RunVimInTerminal('-S Xtest', #{rows: 10})
 
   call term_sendkeys(buf, ":sign \<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_01', {})
 
+  " going down the popup menu using <Down>
   call term_sendkeys(buf, "\<Down>\<Down>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_02', {})
 
+  " going down the popup menu using <C-N>
   call term_sendkeys(buf, "\<C-N>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_03', {})
 
+  " going up the popup menu using <C-P>
   call term_sendkeys(buf, "\<C-P>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_04', {})
 
+  " going up the popup menu using <Up>
   call term_sendkeys(buf, "\<Up>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_05', {})
 
   " pressing <C-E> should end completion and go back to the original match
   call term_sendkeys(buf, "\<C-E>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_06', {})
 
   " pressing <C-Y> should select the current match and end completion
   call term_sendkeys(buf, "\<Tab>\<C-P>\<C-P>\<C-Y>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_07', {})
 
   " With 'wildmode' set to 'longest,full', completing a match should display
@@ -2016,31 +2020,25 @@
   call term_sendkeys(buf, ":\<C-U>set wildmode=longest,full\<CR>")
   call TermWait(buf)
   call term_sendkeys(buf, ":sign u\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_08', {})
 
   " pressing <Tab> should display the wildmenu
   call term_sendkeys(buf, "\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_09', {})
 
   " pressing <Tab> second time should select the next entry in the menu
   call term_sendkeys(buf, "\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_10', {})
 
   call term_sendkeys(buf, ":\<C-U>set wildmode=full\<CR>")
-  " " showing popup menu in different columns in the cmdline
+  " showing popup menu in different columns in the cmdline
   call term_sendkeys(buf, ":sign define \<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_11', {})
 
   call term_sendkeys(buf, " \<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_12', {})
 
   call term_sendkeys(buf, " \<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_13', {})
 
   " Directory name completion
@@ -2050,95 +2048,77 @@
   call writefile([], 'Xdir/XdirA/XdirB/XfileC')
 
   call term_sendkeys(buf, "\<C-U>e Xdi\<Tab>\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_14', {})
 
   " Pressing <Right> on a directory name should go into that directory
   call term_sendkeys(buf, "\<Right>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_15', {})
 
   " Pressing <Left> on a directory name should go to the parent directory
   call term_sendkeys(buf, "\<Left>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_16', {})
 
   " Pressing <C-A> when the popup menu is displayed should list all the
-  " matches and remove the popup menu
+  " matches but the popup menu should still remain
   call term_sendkeys(buf, "\<C-U>sign \<Tab>\<C-A>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_17', {})
 
   " Pressing <C-D> when the popup menu is displayed should remove the popup
   " menu
   call term_sendkeys(buf, "\<C-U>sign \<Tab>\<C-D>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_18', {})
 
   " Pressing <S-Tab> should open the popup menu with the last entry selected
   call term_sendkeys(buf, "\<C-U>\<CR>:sign \<S-Tab>\<C-P>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_19', {})
 
   " Pressing <Esc> should close the popup menu and cancel the cmd line
   call term_sendkeys(buf, "\<C-U>\<CR>:sign \<Tab>\<Esc>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_20', {})
 
   " Typing a character when the popup is open, should close the popup
   call term_sendkeys(buf, ":sign \<Tab>x")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_21', {})
 
   " When the popup is open, entering the cmdline window should close the popup
   call term_sendkeys(buf, "\<C-U>sign \<Tab>\<C-F>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_22', {})
   call term_sendkeys(buf, ":q\<CR>")
 
   " After the last popup menu item, <C-N> should show the original string
   call term_sendkeys(buf, ":sign u\<Tab>\<C-N>\<C-N>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_23', {})
 
   " Use the popup menu for the command name
   call term_sendkeys(buf, "\<C-U>bu\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_24', {})
 
   " Pressing the left arrow should remove the popup menu
   call term_sendkeys(buf, "\<Left>\<Left>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_25', {})
 
   " Pressing <BS> should remove the popup menu and erase the last character
   call term_sendkeys(buf, "\<C-E>\<C-U>sign \<Tab>\<BS>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_26', {})
 
   " Pressing <C-W> should remove the popup menu and erase the previous word
   call term_sendkeys(buf, "\<C-E>\<C-U>sign \<Tab>\<C-W>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_27', {})
 
   " Pressing <C-U> should remove the popup menu and erase the entire line
   call term_sendkeys(buf, "\<C-E>\<C-U>sign \<Tab>\<C-U>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_28', {})
 
   " Using <C-E> to cancel the popup menu and then pressing <Up> should recall
   " the cmdline from history
   call term_sendkeys(buf, "sign xyz\<Esc>:sign \<Tab>\<C-E>\<Up>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_29', {})
 
   " Check "list" still works
   call term_sendkeys(buf, "\<C-U>set wildmode=longest,list\<CR>")
   call term_sendkeys(buf, ":cn\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_30', {})
   call term_sendkeys(buf, "s")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_31', {})
 
   " Tests a directory name contained full-width characters.
@@ -2149,13 +2129,58 @@
 
   call term_sendkeys(buf, "\<C-U>set wildmode&\<CR>")
   call term_sendkeys(buf, ":\<C-U>e Xdir/あいう/\<Tab>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_wildmenu_pum_32', {})
 
+  " Pressing <C-A> when the popup menu is displayed should list all the
+  " matches and pressing a key after that should remove the popup menu
+  call term_sendkeys(buf, "\<C-U>set wildmode=full\<CR>")
+  call term_sendkeys(buf, ":sign \<Tab>\<C-A>x")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_33', {})
+
+  " Pressing <C-A> when the popup menu is displayed should list all the
+  " matches and pressing <Left> after that should move the cursor
+  call term_sendkeys(buf, "\<C-U>abc\<Esc>")
+  call term_sendkeys(buf, ":sign \<Tab>\<C-A>\<Left>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_34', {})
+
+  " When <C-A> displays a lot of matches (screen scrolls), all the matches
+  " should be displayed correctly on the screen.
+  call term_sendkeys(buf, "\<End>\<C-U>Tcmd \<Tab>\<C-A>\<Left>\<Left>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_35', {})
+
+  " After using <C-A> to expand all the filename matches, pressing <Up>
+  " should not open the popup menu again.
+  call term_sendkeys(buf, "\<C-E>\<C-U>:cd Xdir/XdirA\<CR>")
+  call term_sendkeys(buf, ":e \<Tab>\<C-A>\<Up>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_36', {})
+  call term_sendkeys(buf, "\<C-E>\<C-U>:cd -\<CR>")
+
+  " After using <C-A> to expand all the matches, pressing <S-Tab> used to
+  " crash Vim
+  call term_sendkeys(buf, ":sign \<Tab>\<C-A>\<S-Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_37', {})
+
   call term_sendkeys(buf, "\<C-U>\<CR>")
   call StopVimInTerminal(buf)
   call delete('Xtest')
   call delete('Xdir', 'rf')
 endfunc
 
+" Test for wildmenumode() with the cmdline popup menu
+func Test_wildmenumode_with_pum()
+  set wildmenu
+  set wildoptions=pum
+  cnoremap <expr> <F2> wildmenumode()
+  call feedkeys(":sign \<Tab>\<F2>\<F2>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"sign define10', @:)
+  call feedkeys(":sign \<Tab>\<C-A>\<F2>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"sign define jump list place undefine unplace0', @:)
+  call feedkeys(":sign \<Tab>\<C-E>\<F2>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"sign 0', @:)
+  call feedkeys(":sign \<Tab>\<C-Y>\<F2>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"sign define0', @:)
+  set nowildmenu wildoptions&
+  cunmap <F2>
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_conceal.vim b/src/testdir/test_conceal.vim
index cf4194d..ad11eb7 100644
--- a/src/testdir/test_conceal.vim
+++ b/src/testdir/test_conceal.vim
@@ -154,7 +154,6 @@
   call VerifyScreenDump(buf, 'Test_conceal_resize_01', {})
 
   call win_execute(buf->win_findbuf()[0], 'wincmd +')
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_conceal_resize_02', {})
 
   " clean up
diff --git a/src/testdir/test_cursorline.vim b/src/testdir/test_cursorline.vim
index d17a424..245048b 100644
--- a/src/testdir/test_cursorline.vim
+++ b/src/testdir/test_cursorline.vim
@@ -136,41 +136,30 @@
   call writefile(lines, filename)
   " basic test
   let buf = RunVimInTerminal('-S '. filename, #{rows: 20})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_1', {})
   call term_sendkeys(buf, "fagj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_2', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_3', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_4', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_5', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_6', {})
   " test with set list and cursorlineopt containing number
   call term_sendkeys(buf, "gg0")
   call term_sendkeys(buf, ":set list cursorlineopt+=number listchars=space:-\<cr>")
   call VerifyScreenDump(buf, 'Test_'. filename. '_7', {})
   call term_sendkeys(buf, "fagj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_8', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_9', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_10', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_11', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_12', {})
   if exists("+foldcolumn") && exists("+signcolumn") && exists("+breakindent")
     " test with set foldcolumn signcoloumn and breakindent
@@ -178,19 +167,14 @@
     call term_sendkeys(buf, ":set breakindent foldcolumn=2 signcolumn=yes\<cr>")
     call VerifyScreenDump(buf, 'Test_'. filename. '_13', {})
     call term_sendkeys(buf, "fagj")
-    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_14', {})
     call term_sendkeys(buf, "gj")
-    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_15', {})
     call term_sendkeys(buf, "gj")
-    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_16', {})
     call term_sendkeys(buf, "gj")
-    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_17', {})
     call term_sendkeys(buf, "gj")
-    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_18', {})
     call term_sendkeys(buf, ":set breakindent& foldcolumn& signcolumn&\<cr>")
   endif
@@ -200,19 +184,14 @@
   call term_sendkeys(buf, ":set nonumber\<cr>")
   call VerifyScreenDump(buf, 'Test_'. filename. '_19', {})
   call term_sendkeys(buf, "fagj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_20', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_21', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_22', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_23', {})
   call term_sendkeys(buf, "gj")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_24', {})
   call term_sendkeys(buf, ":set list& cursorlineopt& listchars&\<cr>")
 
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index ea217d9..c626023 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -851,7 +851,6 @@
   call term_sendkeys(a:buf, ":diffupdate!\<CR>")
   " trailing : for leaving the cursor on the command line
   call term_sendkeys(a:buf, ":set diffopt=internal,filler" . a:extra . "\<CR>:")
-  call TermWait(a:buf)
   call VerifyScreenDump(a:buf, a:dumpfile, {})
 endfunc
 
diff --git a/src/testdir/test_display.vim b/src/testdir/test_display.vim
index c14dc78..a2e6faf 100644
--- a/src/testdir/test_display.vim
+++ b/src/testdir/test_display.vim
@@ -175,7 +175,6 @@
   call writefile(lines, filename)
   let buf = RunVimInTerminal('-S '.filename, #{rows: 5, cols: 50})
   call term_sendkeys(buf, "k")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_winline_rnu', {})
 
   " clean up
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index 9870b2e..8b3bcdc 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -662,7 +662,6 @@
   call writefile(lines, 'Xtest_colorcolumn')
   let buf = RunVimInTerminal('-S Xtest_colorcolumn', {'rows': 10})
   call term_sendkeys(buf, ":\<CR>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_colorcolumn_1', {})
 
   " clean up
@@ -680,7 +679,6 @@
   call writefile(lines, 'Xtest_colorcolumn_bri')
   let buf = RunVimInTerminal('-S Xtest_colorcolumn_bri', {'rows': 10,'columns': 40})
   call term_sendkeys(buf, ":set co=40 linebreak bri briopt=shift:2 cc=40,41,43\<CR>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_colorcolumn_2', {})
 
   " clean up
@@ -698,7 +696,6 @@
   call writefile(lines, 'Xtest_colorcolumn_srb')
   let buf = RunVimInTerminal('-S Xtest_colorcolumn_srb', {'rows': 10,'columns': 40})
   call term_sendkeys(buf, ":set co=40 showbreak=+++>\\  cc=40,41,43\<CR>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_colorcolumn_3', {})
 
   " clean up
diff --git a/src/testdir/test_match.vim b/src/testdir/test_match.vim
index a912b78..45f8389 100644
--- a/src/testdir/test_match.vim
+++ b/src/testdir/test_match.vim
@@ -359,7 +359,6 @@
   END
   call writefile(lines, 'XscriptMatchLinebreak')
   let buf = RunVimInTerminal('-S XscriptMatchLinebreak', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_match_linebreak', {})
 
   call StopVimInTerminal(buf)
@@ -376,7 +375,6 @@
   END
   call writefile(lines, 'XmatchWithIncsearch')
   let buf = RunVimInTerminal('-S XmatchWithIncsearch', #{rows: 6})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_match_with_incsearch_1', {})
 
   call term_sendkeys(buf, ":s/0")
@@ -417,7 +415,6 @@
   END
   call writefile(lines, 'XscriptMatchTabLinebreak')
   let buf = RunVimInTerminal('-S XscriptMatchTabLinebreak', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_match_tab_linebreak', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 2f29163..5d04583 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1164,7 +1164,6 @@
   let buf = RunVimInTerminal('--cmd "set rightleft" Xtest1', {})
   call term_wait(buf)
   call term_sendkeys(buf, "Go\<C-P>")
-  call term_wait(buf)
   call VerifyScreenDump(buf, 'Test_pum_rightleft_01', {'rows': 8})
   call term_sendkeys(buf, "\<C-P>\<C-Y>")
   call term_wait(buf)
@@ -1206,7 +1205,6 @@
   let buf = RunVimInTerminal('--cmd "set pumheight=2" Xtest1', {})
   call term_wait(buf)
   call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>")
-  call term_wait(buf)
   call VerifyScreenDump(buf, 'Test_pum_scrollbar_01', {'rows': 7})
   call term_sendkeys(buf, "\<C-E>\<Esc>dd")
   call term_wait(buf)
@@ -1215,7 +1213,6 @@
     call term_sendkeys(buf, ":set rightleft\<CR>")
     call term_wait(buf)
     call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>")
-    call term_wait(buf)
     call VerifyScreenDump(buf, 'Test_pum_scrollbar_02', {'rows': 7})
   endif
 
diff --git a/src/testdir/test_search_stat.vim b/src/testdir/test_search_stat.vim
index 68fcc49..15da155 100644
--- a/src/testdir/test_search_stat.vim
+++ b/src/testdir/test_search_stat.vim
@@ -312,15 +312,12 @@
   call writefile(lines, 'Xsearchstat1')
 
   let buf = RunVimInTerminal('-S Xsearchstat1', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_3', {})
 
   call term_sendkeys(buf, "n")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_3', {})
 
   call term_sendkeys(buf, "n")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_3', {})
 
   call StopVimInTerminal(buf)
@@ -343,12 +340,10 @@
   END
   call writefile(lines, 'Xsearchstat')
   let buf = RunVimInTerminal('-S Xsearchstat', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_1', {})
 
   call term_sendkeys(buf, ":nnoremap <silent> n n\<cr>")
   call term_sendkeys(buf, "gg0n")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_2', {})
 
   call StopVimInTerminal(buf)
@@ -367,11 +362,9 @@
 
   let buf = RunVimInTerminal('-S Xsearchstatgd', #{rows: 10})
   call term_sendkeys(buf, "/dog\<CR>")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstatgd_1', {})
 
   call term_sendkeys(buf, "G0gD")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstatgd_2', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 4ef977b..2339942 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1137,18 +1137,15 @@
 
   " Send a focus event to ourselves, it should be forwarded to the terminal
   call feedkeys("\<Esc>[O", "Lx!")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_terminal_focus_1', {})
 
   call feedkeys("\<Esc>[I", "Lx!")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_terminal_focus_2', {})
 
   " check that a command line being edited is redrawn in place
   call term_sendkeys(buf, ":" .. repeat('x', 80))
   call TermWait(buf)
   call feedkeys("\<Esc>[O", "Lx!")
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_terminal_focus_3', {})
   call term_sendkeys(buf, "\<Esc>")
 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index ed2856f..530a256 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -1626,7 +1626,6 @@
   END
   call writefile(lines, 'XscriptPropLinebreak')
   let buf = RunVimInTerminal('-S XscriptPropLinebreak', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_prop_linebreak', {})
 
   call StopVimInTerminal(buf)
@@ -1644,7 +1643,6 @@
   END
   call writefile(lines, 'XscriptPropAfterTab')
   let buf = RunVimInTerminal('-S XscriptPropAfterTab', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_prop_after_tab', {})
 
   call StopVimInTerminal(buf)
@@ -1662,7 +1660,6 @@
   END
   call writefile(lines, 'XscriptPropAfterLinebreak')
   let buf = RunVimInTerminal('-S XscriptPropAfterLinebreak', #{rows: 10})
-  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_prop_after_linebreak', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/version.c b/src/version.c
index db2a923..6b6d3cc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4339,
+/**/
     4338,
 /**/
     4337,
