diff --git a/src/evalvars.c b/src/evalvars.c
index 721b688..86a6694 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -1193,7 +1193,8 @@
 	    if (!VIM_ISWHITE(*arg) && !ends_excmd(*arg))
 	    {
 		emsg_severe = TRUE;
-		semsg(_(e_trailing_arg), arg);
+		if (!error)
+		    semsg(_(e_trailing_arg), arg);
 		break;
 	    }
 	}
diff --git a/src/globals.h b/src/globals.h
index f09ad48..6d9741b 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -238,8 +238,8 @@
 EXTERN int	did_emsg_cumul;		    // cumulative did_emsg, increased
 					    // when did_emsg is reset.
 EXTERN int	called_vim_beep;	    // set if vim_beep() is called
-EXTERN int	did_uncaught_emsg;	    // emsg() was called and did not
-					    // cause an exception
+EXTERN int	uncaught_emsg;		    // number of times emsg() was
+					    // called and did show a message
 #endif
 EXTERN int	did_emsg_syntax;	    // did_emsg set because of a
 					    // syntax error
diff --git a/src/message.c b/src/message.c
index 23b84fa..bb0dbb2 100644
--- a/src/message.c
+++ b/src/message.c
@@ -733,7 +733,7 @@
 	    flush_buffers(FLUSH_MINIMAL);  // flush internal buffers
 	++did_emsg;			   // flag for DoOneCmd()
 #ifdef FEAT_EVAL
-	did_uncaught_emsg = TRUE;
+	++uncaught_emsg;
 #endif
     }
 
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index f8d3f59..cc7132a 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -160,6 +160,52 @@
   delete(dir, 'rf')
 enddef
 
+def Test_autoload_error_in_script()
+  var dir = 'Xdir/autoload'
+  mkdir(dir, 'p')
+
+  var lines =<< trim END
+      func scripterror#function()
+        let g:called_function = 'yes'
+      endfunc
+      let 0 = 1
+  END
+  writefile(lines, dir .. '/scripterror.vim')
+
+  var save_rtp = &rtp
+  exe 'set rtp=' .. getcwd() .. '/Xdir'
+
+  g:called_function = 'no'
+  # The error in the autoload script cannot be checked with assert_fails(), use
+  # CheckDefSuccess() instead of CheckDefFailure()
+  try
+    CheckDefSuccess(['scripterror#function()'])
+  catch
+    assert_match('E121: Undefined variable: 0', v:exception)
+  endtry
+  assert_equal('no', g:called_function)
+
+  lines =<< trim END
+      func scriptcaught#function()
+        let g:called_function = 'yes'
+      endfunc
+      try
+        let 0 = 1
+      catch
+        let g:caught = v:exception
+      endtry
+  END
+  writefile(lines, dir .. '/scriptcaught.vim')
+
+  g:called_function = 'no'
+  CheckDefSuccess(['scriptcaught#function()'])
+  assert_match('E121: Undefined variable: 0', g:caught)
+  assert_equal('yes', g:called_function)
+
+  &rtp = save_rtp
+  delete(dir, 'rf')
+enddef
+
 def CallRecursive(n: number): number
   return CallRecursive(n + 1)
 enddef
diff --git a/src/testdir/vim9.vim b/src/testdir/vim9.vim
index 742a093..a40b444 100644
--- a/src/testdir/vim9.vim
+++ b/src/testdir/vim9.vim
@@ -12,10 +12,10 @@
   try
     exe 'so ' .. fname
     call Func()
-    delfunc! Func
   finally
     call chdir(cwd)
     call delete(fname)
+    delfunc! Func
   endtry
 endfunc
 
diff --git a/src/time.c b/src/time.c
index ecd884f..ab12691 100644
--- a/src/time.c
+++ b/src/time.c
@@ -520,6 +520,7 @@
 	    int save_timer_busy = timer_busy;
 	    int save_vgetc_busy = vgetc_busy;
 	    int save_did_emsg = did_emsg;
+	    int prev_uncaught_emsg = uncaught_emsg;
 	    int save_called_emsg = called_emsg;
 	    int save_must_redraw = must_redraw;
 	    int save_trylevel = trylevel;
@@ -536,7 +537,6 @@
 	    vgetc_busy = 0;
 	    called_emsg = 0;
 	    did_emsg = FALSE;
-	    did_uncaught_emsg = FALSE;
 	    must_redraw = 0;
 	    trylevel = 0;
 	    did_throw = FALSE;
@@ -555,7 +555,7 @@
 	    did_one = TRUE;
 	    timer_busy = save_timer_busy;
 	    vgetc_busy = save_vgetc_busy;
-	    if (did_uncaught_emsg)
+	    if (uncaught_emsg > prev_uncaught_emsg)
 		++timer->tr_emsg_count;
 	    did_emsg = save_did_emsg;
 	    called_emsg = save_called_emsg;
diff --git a/src/version.c b/src/version.c
index 87c315a..e496112 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3341,
+/**/
     3340,
 /**/
     3339,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 04d5e5f..4562a08 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -844,12 +844,13 @@
 }
 
 /*
- * Return TRUE if an error was given or CTRL-C was pressed.
+ * Return TRUE if an error was given (not caught in try/catch) or CTRL-C was
+ * pressed.
  */
     static int
-vim9_aborting(int prev_called_emsg)
+vim9_aborting(int prev_uncaught_emsg)
 {
-    return called_emsg > prev_called_emsg || got_int || did_throw;
+    return uncaught_emsg > prev_uncaught_emsg || got_int || did_throw;
 }
 
 /*
@@ -882,12 +883,13 @@
 
     if (ufunc == NULL)
     {
-	int called_emsg_before = called_emsg;
+	int prev_uncaught_emsg = uncaught_emsg;
 
 	if (script_autoload(name, TRUE))
 	    // loaded a package, search for the function again
 	    ufunc = find_func(name, FALSE, NULL);
-	if (vim9_aborting(called_emsg_before))
+
+	if (vim9_aborting(prev_uncaught_emsg))
 	    return FAIL;  // bail out if loading the script caused an error
     }
 
