diff --git a/src/buffer.c b/src/buffer.c
index 5cbaaac..c804348 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2154,7 +2154,7 @@
 	if (top_file_num < 0)		// wrap around (may cause duplicates)
 	{
 	    emsg(_("W14: Warning: List of file names overflow"));
-	    if (emsg_silent == 0)
+	    if (emsg_silent == 0 && !in_assert_fails)
 	    {
 		out_flush();
 		ui_delay(3001L, TRUE);	// make sure it is noticed
diff --git a/src/change.c b/src/change.c
index 4578057..50dc105 100644
--- a/src/change.c
+++ b/src/change.c
@@ -115,7 +115,7 @@
 	    // Wait two seconds, to make sure the user reads this unexpected
 	    // message.  Since we could be anywhere, call wait_return() now,
 	    // and don't let the emsg() set msg_scroll.
-	    if (need_wait_return && emsg_silent == 0)
+	    if (need_wait_return && emsg_silent == 0 && !in_assert_fails)
 	    {
 		out_flush();
 		ui_delay(2002L, TRUE);
diff --git a/src/fileio.c b/src/fileio.c
index 9eecb01..27e9aae 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -4208,7 +4208,7 @@
 			msg_puts_attr(mesg2, HL_ATTR(HLF_W) + MSG_HIST);
 		    msg_clr_eos();
 		    (void)msg_end();
-		    if (emsg_silent == 0)
+		    if (emsg_silent == 0 && !in_assert_fails)
 		    {
 			out_flush();
 #ifdef FEAT_GUI
diff --git a/src/globals.h b/src/globals.h
index 5495eac..5bdbad6 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -221,7 +221,6 @@
 EXTERN int	emsg_severe INIT(= FALSE);  // use message of next of several
 					    // emsg() calls for throw
 // used by assert_fails()
-EXTERN int	emsg_assert_fails_used INIT(= FALSE);
 EXTERN char_u	*emsg_assert_fails_msg INIT(= NULL);
 EXTERN long	emsg_assert_fails_lnum INIT(= 0);
 EXTERN char_u	*emsg_assert_fails_context INIT(= NULL);
@@ -1130,6 +1129,8 @@
 EXTERN int	emsg_noredir INIT(= 0);	// don't redirect error messages
 EXTERN int	cmd_silent INIT(= FALSE); // don't echo the command line
 
+EXTERN int	in_assert_fails INIT(= FALSE);	// assert_fails() active
+
 EXTERN int	swap_exists_action INIT(= SEA_NONE);
 					// For dialog when swap file already
 					// exists.
diff --git a/src/insexpand.c b/src/insexpand.c
index 87aaf7d..7e61e61 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -298,7 +298,7 @@
 	msg_attr(dict_opt ? _("'dictionary' option is empty")
 			  : _("'thesaurus' option is empty"),
 							      HL_ATTR(HLF_E));
-	if (emsg_silent == 0)
+	if (emsg_silent == 0 && !in_assert_fails)
 	{
 	    vim_beep(BO_COMPL);
 	    setcursor();
diff --git a/src/message.c b/src/message.c
index 8c8e954..f8efabc 100644
--- a/src/message.c
+++ b/src/message.c
@@ -659,7 +659,7 @@
 	    return TRUE;
 	}
 
-	if (emsg_assert_fails_used && emsg_assert_fails_msg == NULL)
+	if (in_assert_fails && emsg_assert_fails_msg == NULL)
 	{
 	    emsg_assert_fails_msg = vim_strsave(s);
 	    emsg_assert_fails_lnum = SOURCING_LNUM;
diff --git a/src/misc1.c b/src/misc1.c
index 058e860..010622e 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1063,7 +1063,7 @@
     called_vim_beep = TRUE;
 #endif
 
-    if (emsg_silent == 0)
+    if (emsg_silent == 0 && !in_assert_fails)
     {
 	if (!((bo_flags & val) || (bo_flags & BO_ALL)))
 	{
@@ -2568,6 +2568,7 @@
  * But don't allow a space in the path, so that this works:
  *   "/usr/bin/csh --rcfile ~/.cshrc"
  * But don't do that for Windows, it's common to have a space in the path.
+ * Returns NULL when out of memory.
  */
     char_u *
 get_isolated_shell_name(void)
diff --git a/src/normal.c b/src/normal.c
index 89eaabc..af4d3b2 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1154,6 +1154,7 @@
 	    && stuff_empty()
 	    && typebuf_typed()
 	    && emsg_silent == 0
+	    && !in_assert_fails
 	    && !did_wait_return
 	    && oap->op_type == OP_NOP)
     {
diff --git a/src/screen.c b/src/screen.c
index 0b117cd..6e907cd 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -2490,7 +2490,8 @@
 {
     if ((emsg_on_display || (check_msg_scroll && msg_scroll))
 	    && !did_wait_return
-	    && emsg_silent == 0)
+	    && emsg_silent == 0
+	    && !in_assert_fails)
     {
 	out_flush();
 	ui_delay(1006L, TRUE);
diff --git a/src/term.c b/src/term.c
index be6d531..4d4cc58 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1800,7 +1800,7 @@
     mch_errmsg(_("defaulting to '"));
     mch_errmsg((char *)term);
     mch_errmsg("'\r\n");
-    if (emsg_silent == 0)
+    if (emsg_silent == 0 && !in_assert_fails)
     {
 	screen_start();	// don't know where cursor is now
 	out_flush();
diff --git a/src/testdir/gen_opt_test.vim b/src/testdir/gen_opt_test.vim
index 271abed..600a790 100644
--- a/src/testdir/gen_opt_test.vim
+++ b/src/testdir/gen_opt_test.vim
@@ -200,8 +200,8 @@
       " setting an option can only fail when it's implemented.
       call add(script, "if exists('+" . name . "')")
       for val in a[1]
-	call add(script, "call assert_fails('set " . name . "=" . val . "')")
-	call add(script, "call assert_fails('set " . shortname . "=" . val . "')")
+	call add(script, "silent! call assert_fails('set " . name . "=" . val . "')")
+	call add(script, "silent! call assert_fails('set " . shortname . "=" . val . "')")
       endfor
       call add(script, "endif")
     endif
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 639f9eb..1e8711c 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -194,7 +194,7 @@
     exe 'autocmd BufUnload <buffer> ' . (lastbuf + 1) . 'bwipeout!'
   augroup END
 
-  call assert_fails('edit bb.txt', ['E937:', 'E517:'])
+  call assert_fails('edit bb.txt', 'E937:')
 
   autocmd! test_autocmd_bufunload
   augroup! test_autocmd_bufunload
@@ -1768,7 +1768,7 @@
 func Test_nocatch_wipe_all_buffers()
   " Real nasty autocommand: wipe all buffers on any event.
   au * * bwipe *
-  call assert_fails('next x', ['E94:', 'E517:'])
+  call assert_fails('next x', ['E94:', 'E937:'])
   bwipe
   au!
 endfunc
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
index 67a908a..5bec95a 100644
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -681,7 +681,7 @@
   " invalid <expr> abbreviation
   abbr <expr> hte GetAbbr()
   call assert_fails('normal ihte ', 'E117:')
-  call assert_equal(' ', getline(1))
+  call assert_equal('', getline(1))
   unabbr <expr> hte
 
   close!
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 381a2c1..28481b3 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -344,7 +344,7 @@
   /^one
   call assert_fails('call feedkeys("A\<C-X>\<C-U>\<C-N>\<Esc>", "x")', 'E578:')
   call assert_equal(winid, win_getid())
-  call assert_equal('oneDEF', getline(1))
+  call assert_equal('onedef', getline(1))
   q!
 endfunc
 
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 676d864..829706c 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -65,7 +65,7 @@
 
   setlocal modifiable
   exe "normal Axxx\<Esc>"
-  call assert_fails(buf . 'bwipe', ['E89:', 'E517:'])
+  call assert_fails(buf . 'bwipe', 'E89:')
   undo
 
   exe buf . 'bwipe'
@@ -89,7 +89,7 @@
 
 func Test_terminal_wipe_buffer()
   let buf = Run_shell_in_terminal({})
-  call assert_fails(buf . 'bwipe', ['E89:', 'E517:'])
+  call assert_fails(buf . 'bwipe', 'E89:')
   exe buf . 'bwipe!'
   call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
   call assert_equal("", bufname(buf))
@@ -648,7 +648,7 @@
 
 func Test_terminal_list_args()
   let buf = term_start([&shell, &shellcmdflag, 'echo "123"'])
-  call assert_fails(buf . 'bwipe', ['E89:', 'E517:'])
+  call assert_fails(buf . 'bwipe', 'E89:')
   exe buf . 'bwipe!'
   call assert_equal("", bufname(buf))
 endfunction
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 919af74..4ec0f6f 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1467,14 +1467,14 @@
   g:did_it = 'yes'
 enddef
 
-"func UserError()
-"  silent! invalid
-"endfunc
-"
-"def SilentlyUserError()
-"  UserError()
-"  g:did_it = 'yes'
-"enddef
+func UserError()
+  silent! invalid
+endfunc
+
+def SilentlyUserError()
+  UserError()
+  g:did_it = 'yes'
+enddef
 
 " This can't be a :def function, because the assert would not be reached.
 " And this must not be inside a try/endtry.
@@ -1483,10 +1483,9 @@
   call SilentlyError()
   call assert_equal('yes', g:did_it)
 
-"  this doesn't work yet
-"  let g:did_it = 'no'
-"  call SilentlyUserError()
-"  call assert_equal('yes', g:did_it)
+  let g:did_it = 'no'
+  call SilentlyUserError()
+  call assert_equal('yes', g:did_it)
 
   unlet g:did_it
 endfunc
diff --git a/src/testing.c b/src/testing.c
index 8115441..919b911 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -555,8 +555,7 @@
     // trylevel must be zero for a ":throw" command to be considered failed
     trylevel = 0;
     suppress_errthrow = TRUE;
-    emsg_silent = TRUE;
-    emsg_assert_fails_used = TRUE;
+    in_assert_fails = TRUE;
 
     do_cmdline_cmd(cmd);
     if (called_emsg == called_emsg_before)
@@ -679,9 +678,13 @@
 theend:
     trylevel = save_trylevel;
     suppress_errthrow = FALSE;
-    emsg_silent = FALSE;
+    in_assert_fails = FALSE;
+    did_emsg = FALSE;
+    msg_col = 0;
+    need_wait_return = FALSE;
     emsg_on_display = FALSE;
-    emsg_assert_fails_used = FALSE;
+    msg_scrolled = 0;
+    lines_left = Rows;
     VIM_CLEAR(emsg_assert_fails_msg);
     set_vim_var_string(VV_ERRMSG, NULL, 0);
     if (wrong_arg_msg != NULL)
diff --git a/src/version.c b/src/version.c
index a7508ca..2aa5b0d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1919,
+/**/
     1918,
 /**/
     1917,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index c428a3d..09eb6c2 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -582,7 +582,7 @@
     funcexe_T   funcexe;
     int		error;
     int		idx;
-    int		called_emsg_before = called_emsg;
+    int		did_emsg_before = did_emsg;
 
     if (ufunc->uf_def_status == UF_TO_BE_COMPILED
 	    && compile_def_function(ufunc, FALSE, NULL) == FAIL)
@@ -620,7 +620,7 @@
 	user_func_error(error, ufunc->uf_name);
 	return FAIL;
     }
-    if (called_emsg > called_emsg_before)
+    if (did_emsg > did_emsg_before)
 	// Error other than from calling the function itself.
 	return FAIL;
     return OK;
