diff --git a/src/globals.h b/src/globals.h
index 4ca3092..5495eac 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -288,6 +288,9 @@
 #define SOURCING_LNUM (((estack_T *)exestack.ga_data)[exestack.ga_len - 1].es_lnum)
 
 #ifdef FEAT_EVAL
+// whether inside compile_def_function()
+EXTERN int	estack_compiling INIT(= FALSE);
+
 EXTERN int	ex_nesting_level INIT(= 0);	// nesting level
 EXTERN int	debug_break_level INIT(= -1);	// break below this level
 EXTERN int	debug_did_msg INIT(= FALSE);	// did "debug mode" message
diff --git a/src/message.c b/src/message.c
index 059835a..c527952 100644
--- a/src/message.c
+++ b/src/message.c
@@ -467,7 +467,12 @@
 	if (sname == NULL)
 	    sname = SOURCING_NAME;
 
-	p = (char_u *)_("Error detected while processing %s:");
+#ifdef FEAT_EVAL
+	if (estack_compiling)
+	    p = (char_u *)_("Error detected while compiling %s:");
+	else
+#endif
+	    p = (char_u *)_("Error detected while processing %s:");
 	Buf = alloc(STRLEN(sname) + STRLEN(p));
 	if (Buf != NULL)
 	    sprintf((char *)Buf, (char *)p, sname);
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 371b9ef..4329754 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -13,6 +13,38 @@
   call SomeFunc()->assert_equal('yes')
 endfunc
 
+def Test_compiling_error()
+  # use a terminal to see the whole error message
+  CheckRunVimInTerminal
+
+  var lines =<< trim END
+    vim9script
+    def Fails()
+      echo nothing
+    enddef
+    defcompile
+  END
+  call writefile(lines, 'XTest_compile_error')
+  var buf = RunVimInTerminal('-S XTest_compile_error',
+              #{rows: 10, wait_for_ruler: 0})
+  var text = ''
+  for loop in range(100)
+    text = ''
+    for i in range(1, 9)
+      text ..= term_getline(buf, i)
+    endfor
+    if text =~ 'Error detected'
+      break
+    endif
+    sleep 20m
+  endfor
+  assert_match('Error detected while compiling command line.*Fails.*Variable not found: nothing', text)
+
+  # clean up
+  call StopVimInTerminal(buf)
+  call delete('XTest_compile_error')
+enddef
+
 def ReturnString(): string
   return 'string'
 enddef
diff --git a/src/version.c b/src/version.c
index f972cbd..2b3657b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1840,
+/**/
     1839,
 /**/
     1838,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 74be262..1dbea92 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -6715,6 +6715,7 @@
     int		called_emsg_before = called_emsg;
     int		ret = FAIL;
     sctx_T	save_current_sctx = current_sctx;
+    int		save_estack_compiling = estack_compiling;
     int		do_estack_push;
     int		emsg_before = called_emsg;
     int		new_def_function = FALSE;
@@ -6757,6 +6758,7 @@
     do_estack_push = !estack_top_is_ufunc(ufunc, 1);
     if (do_estack_push)
 	estack_push_ufunc(ufunc, 1);
+    estack_compiling = TRUE;
 
     if (ufunc->uf_def_args.ga_len > 0)
     {
@@ -7303,6 +7305,7 @@
     }
 
     current_sctx = save_current_sctx;
+    estack_compiling = save_estack_compiling;
     if (do_estack_push)
 	estack_pop();
 
