diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index b4e3553..c8cb11b 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1266,7 +1266,7 @@
 	if (did_throw)
 	{
 	    char	*p = NULL;
-	    msglist_T	*messages = NULL, *next;
+	    msglist_T	*messages = NULL;
 
 	    /*
 	     * If the uncaught exception is a user exception, report it as an
@@ -1303,12 +1303,16 @@
 	    {
 		do
 		{
-		    next = messages->next;
+		    msglist_T	*next = messages->next;
+		    int		save_compiling = estack_compiling;
+
+		    estack_compiling = messages->msg_compiling;
 		    emsg(messages->msg);
 		    vim_free(messages->msg);
 		    vim_free(messages->sfile);
 		    vim_free(messages);
 		    messages = next;
+		    estack_compiling = save_compiling;
 		}
 		while (messages != NULL);
 	    }
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 8d1fd87..d68e792 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -292,6 +292,7 @@
 		    // reaching do_errthrow().
 		    elem->sfile = estack_sfile(ESTACK_NONE);
 		    elem->slnum = SOURCING_LNUM;
+		    elem->msg_compiling = estack_compiling;
 		}
 	    }
 	}
diff --git a/src/structs.h b/src/structs.h
index f0296c1..dd80215 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -971,11 +971,12 @@
 typedef struct msglist msglist_T;
 struct msglist
 {
+    msglist_T	*next;		// next of several messages in a row
     char	*msg;		// original message, allocated
     char	*throw_msg;	// msg to throw: usually original one
     char_u	*sfile;		// value from estack_sfile(), allocated
     long	slnum;		// line number for "sfile"
-    msglist_T	*next;		// next of several messages in a row
+    int		msg_compiling;	// saved value of estack_compiling
 };
 
 /*
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 5e3ca1c..8085e5c 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -18,6 +18,7 @@
   CheckRunVimInTerminal
 
   call TestCompilingError()
+  call TestCompilingErrorInTry()
 endfunc
 
 def TestCompilingError()
@@ -28,15 +29,49 @@
     enddef
     defcompile
   END
-  call writefile(lines, 'XTest_compile_error')
+  writefile(lines, 'XTest_compile_error')
   var buf = RunVimInTerminal('-S XTest_compile_error',
               {rows: 10, wait_for_ruler: 0})
-  call WaitForAssert(() => assert_match('Error detected while compiling command line.*Fails.*Variable not found: nothing',
+  WaitForAssert(() => assert_match('Error detected while compiling command line.*Fails.*Variable not found: nothing',
                      Term_getlines(buf, range(1, 9))))
 
   # clean up
-  call StopVimInTerminal(buf)
-  call delete('XTest_compile_error')
+  StopVimInTerminal(buf)
+  delete('XTest_compile_error')
+enddef
+
+def TestCompilingErrorInTry()
+  var dir = 'Xdir/autoload'
+  mkdir(dir, 'p')
+
+  var lines =<< trim END
+      vim9script
+      def script#OnlyCompiled()
+        g:runtime = 'yes'
+        invalid
+      enddef
+  END
+  writefile(lines, dir .. '/script.vim')
+
+  lines =<< trim END
+      vim9script
+      todo
+      try
+        script#OnlyCompiled()
+      catch /nothing/
+      endtry
+  END
+  lines[1] = 'set rtp=' .. getcwd() .. '/Xdir'
+  writefile(lines, 'XTest_compile_error')
+
+  var buf = RunVimInTerminal('-S XTest_compile_error', {rows: 10, wait_for_ruler: 0})
+  WaitForAssert(() => assert_match('Error detected while compiling command line.*function script#OnlyCompiled.*Invalid command: invalid',
+                     Term_getlines(buf, range(1, 9))))
+
+  # clean up
+  StopVimInTerminal(buf)
+  delete('XTest_compile_error')
+  delete('Xdir', 'rf')
 enddef
 
 def CallRecursive(n: number): number
diff --git a/src/version.c b/src/version.c
index ef8f999..4318b71 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2725,
+/**/
     2724,
 /**/
     2723,
