diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index f02da7f..6831809 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -853,8 +853,8 @@
 
       var nres: any
       var sres: any
-      def Func(n: number, s = '')
-        nres = n
+      def Func(nr: number, s = '')
+        nres = nr
         sres = s
       enddef
 
@@ -869,7 +869,7 @@
   lines =<< trim END
       vim9script
 
-      def Func(n: number, s = '')
+      def Func(nr: number, s = '')
       enddef
 
       var n: number
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 7b2f501..1cdf7d4 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -951,6 +951,7 @@
   END
   CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 5)
 
+  # argument name declared earlier is found when declaring a function
   lines =<< trim END
     vim9script
     var name = 'piet'
@@ -960,6 +961,17 @@
   END
   CheckScriptFailure(lines, 'E1168:')
 
+  # argument name declared later is only found when compiling
+  lines =<< trim END
+    vim9script
+    def FuncOne(name: string)
+      echo nr
+    enddef
+    var name = 'piet'
+  END
+  CheckScriptSuccess(lines)
+  CheckScriptFailure(lines + ['defcompile'], 'E1168:')
+
   lines =<< trim END
     vim9script
     def FuncOne(nr: number)
diff --git a/src/version.c b/src/version.c
index 1e955c4..9c17252 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3954,
+/**/
     3953,
 /**/
     3952,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 272368e..0418378 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2393,6 +2393,34 @@
     return NOTDONE;
 }
 
+/*
+ * Check if arguments of "ufunc" shadow variables in "cctx".
+ * Return OK or FAIL.
+ */
+    static int
+check_args_shadowing(ufunc_T *ufunc, cctx_T *cctx)
+{
+    int	    i;
+    char_u  *arg;
+    int	    r = OK;
+
+    // Make sure arguments are not found when compiling a second time.
+    ufunc->uf_args_visible = 0;
+
+    // Check for arguments shadowing variables from the context.
+    for (i = 0; i < ufunc->uf_args.ga_len; ++i)
+    {
+	arg = ((char_u **)(ufunc->uf_args.ga_data))[i];
+	if (check_defined(arg, STRLEN(arg), cctx, TRUE) == FAIL)
+	{
+	    r = FAIL;
+	    break;
+	}
+    }
+    ufunc->uf_args_visible = ufunc->uf_args.ga_len;
+    return r;
+}
+
 
 /*
  * Add a function to the list of :def functions.
@@ -2525,6 +2553,9 @@
 	estack_push_ufunc(ufunc, 1);
     estack_compiling = TRUE;
 
+    if (check_args_shadowing(ufunc, &cctx) == FAIL)
+	goto erret;
+
     if (ufunc->uf_def_args.ga_len > 0)
     {
 	int	count = ufunc->uf_def_args.ga_len;
