diff --git a/src/proto/vim9compile.pro b/src/proto/vim9compile.pro
index 05d3998..39624ae 100644
--- a/src/proto/vim9compile.pro
+++ b/src/proto/vim9compile.pro
@@ -1,5 +1,4 @@
 /* vim9compile.c */
-int script_var_exists(char_u *name, size_t len, int vim9script, cctx_T *cctx);
 int check_defined(char_u *p, size_t len, cctx_T *cctx, int is_arg);
 int check_compare_types(exprtype_T type, typval_T *tv1, typval_T *tv2);
 int use_typecheck(type_T *actual, type_T *expected);
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 4e1e3d7..c86379e 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2714,6 +2714,21 @@
   CheckDefAndScriptFailure(lines, 'E1050:')
 enddef
 
+def Test_expr7_legacy_script()
+  var lines =<< trim END
+      let s:legacy = 'legacy'
+      def GetLocal(): string
+        return legacy
+      enddef
+      def GetLocalPrefix(): string
+        return s:legacy
+      enddef
+      call assert_equal('legacy', GetLocal())
+      call assert_equal('legacy', GetLocalPrefix())
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 def Echo(arg: any): string
   return arg
 enddef
diff --git a/src/version.c b/src/version.c
index 58d6d9f..4eea2f1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2734,
+/**/
     2733,
 /**/
     2732,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index feb1838..c4b5d3c 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -332,22 +332,15 @@
 
 /*
  * Lookup a variable (without s: prefix) in the current script.
- * If "vim9script" is TRUE the script must be Vim9 script.  Used for "var"
- * without "s:".
  * "cctx" is NULL at the script level.
  * Returns OK or FAIL.
  */
-    int
-script_var_exists(char_u *name, size_t len, int vim9script, cctx_T *cctx)
+    static int
+script_var_exists(char_u *name, size_t len, cctx_T *cctx)
 {
-    int		    is_vim9_script;
-
     if (current_sctx.sc_sid <= 0)
 	return FAIL;
-    is_vim9_script = script_is_vim9();
-    if (vim9script && !is_vim9_script)
-	return FAIL;
-    if (is_vim9_script)
+    if (script_is_vim9())
     {
 	// Check script variables that were visible where the function was
 	// defined.
@@ -382,7 +375,7 @@
     return (cctx != NULL
 		&& (lookup_local(name, len, NULL, cctx) == OK
 		    || arg_exists(name, len, NULL, NULL, NULL, cctx) == OK))
-	    || script_var_exists(name, len, FALSE, cctx) == OK
+	    || script_var_exists(name, len, cctx) == OK
 	    || find_imported(name, len, cctx) != NULL;
 }
 
@@ -429,7 +422,7 @@
     int		c = p[len];
     ufunc_T	*ufunc = NULL;
 
-    if (script_var_exists(p, len, FALSE, cctx) == OK)
+    if (script_var_exists(p, len, cctx) == OK)
     {
 	if (is_arg)
 	    semsg(_(e_argument_already_declared_in_script_str), p);
@@ -2990,7 +2983,7 @@
 	    {
 		// "var" can be script-local even without using "s:" if it
 		// already exists in a Vim9 script or when it's imported.
-		if (script_var_exists(*arg, len, TRUE, cctx) == OK
+		if (script_var_exists(*arg, len, cctx) == OK
 			|| find_imported(name, 0, cctx) != NULL)
 		   res = compile_load_scriptvar(cctx, name, *arg, &end, FALSE);
 
@@ -5844,9 +5837,9 @@
 				       && STRNCMP(var_start, "s:", 2) == 0;
 		int script_var = (script_namespace
 			? script_var_exists(var_start + 2, lhs->lhs_varlen - 2,
-							       FALSE, cctx)
+									  cctx)
 			  : script_var_exists(var_start, lhs->lhs_varlen,
-							   FALSE, cctx)) == OK;
+								  cctx)) == OK;
 		imported_T  *import =
 			       find_imported(var_start, lhs->lhs_varlen, cctx);
 
