diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index aa9fe9b..44d8cd8 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3123,7 +3123,7 @@
 #endif
 
     if (command != NULL)
-	do_cmdline(command, NULL, NULL, DOCMD_VERBOSE);
+	do_cmdline(command, NULL, NULL, DOCMD_VERBOSE|DOCMD_RANGEOK);
 
 #ifdef FEAT_KEYMAP
     if (curbuf->b_kmap_state & KEYMAP_INIT)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 44e113d..582791a 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -595,6 +595,17 @@
 }
 
 /*
+ * Execute the "+cmd" argument of "edit +cmd fname" and the like.
+ * This allows for using a range without ":" in Vim9 script.
+ */
+    int
+do_cmd_argument(char_u *cmd)
+{
+    return do_cmdline(cmd, NULL, NULL,
+		      DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED|DOCMD_RANGEOK);
+}
+
+/*
  * do_cmdline(): execute one Ex command line
  *
  * 1. Execute "cmdline" when it is not NULL.
@@ -989,7 +1000,7 @@
 	 *    "cmdline_copy" can change, e.g. for '%' and '#' expansion.
 	 */
 	++recursive;
-	next_cmdline = do_one_cmd(&cmdline_copy, flags & DOCMD_VERBOSE,
+	next_cmdline = do_one_cmd(&cmdline_copy, flags,
 #ifdef FEAT_EVAL
 				&cstack,
 #endif
@@ -1685,7 +1696,8 @@
 /*
  * Execute one Ex command.
  *
- * If 'sourcing' is TRUE, the command will be included in the error message.
+ * If "flags" has DOCMD_VERBOSE, the command will be included in the error
+ * message.
  *
  * 1. skip comment lines and leading space
  * 2. handle command modifiers
@@ -1708,7 +1720,7 @@
     static char_u *
 do_one_cmd(
     char_u	**cmdlinep,
-    int		sourcing,
+    int		flags,
 #ifdef FEAT_EVAL
     cstack_T	*cstack,
 #endif
@@ -1731,6 +1743,7 @@
     int		vim9script = in_vim9script();
     int		did_set_expr_line = FALSE;
 #endif
+    int		sourcing = flags & DOCMD_VERBOSE;
 
     CLEAR_FIELD(ea);
     ea.line1 = 1;
@@ -1794,7 +1807,7 @@
 #ifdef FEAT_EVAL
     // In Vim9 script a colon is required before the range.  This may also be
     // after command modifiers.
-    if (vim9script)
+    if (vim9script && (flags & DOCMD_RANGEOK) == 0)
     {
 	may_have_range = FALSE;
 	for (p = ea.cmd; p >= *cmdlinep; --p)
@@ -5009,7 +5022,7 @@
 	else
 	    goto_buffer(eap, DOBUF_FIRST, FORWARD, (int)eap->line2);
 	if (eap->do_ecmd_cmd != NULL)
-	    do_cmdline_cmd(eap->do_ecmd_cmd);
+	    do_cmd_argument(eap->do_ecmd_cmd);
     }
 }
 
@@ -5022,7 +5035,7 @@
 {
     goto_buffer(eap, DOBUF_MOD, FORWARD, (int)eap->line2);
     if (eap->do_ecmd_cmd != NULL)
-	do_cmdline_cmd(eap->do_ecmd_cmd);
+	do_cmd_argument(eap->do_ecmd_cmd);
 }
 
 /*
@@ -5037,7 +5050,7 @@
 
     goto_buffer(eap, DOBUF_CURRENT, FORWARD, (int)eap->line2);
     if (eap->do_ecmd_cmd != NULL)
-	do_cmdline_cmd(eap->do_ecmd_cmd);
+	do_cmd_argument(eap->do_ecmd_cmd);
 }
 
 /*
@@ -5054,7 +5067,7 @@
 
     goto_buffer(eap, DOBUF_CURRENT, BACKWARD, (int)eap->line2);
     if (eap->do_ecmd_cmd != NULL)
-	do_cmdline_cmd(eap->do_ecmd_cmd);
+	do_cmd_argument(eap->do_ecmd_cmd);
 }
 
 /*
@@ -5071,7 +5084,7 @@
 
     goto_buffer(eap, DOBUF_FIRST, FORWARD, 0);
     if (eap->do_ecmd_cmd != NULL)
-	do_cmdline_cmd(eap->do_ecmd_cmd);
+	do_cmd_argument(eap->do_ecmd_cmd);
 }
 
 /*
@@ -5086,7 +5099,7 @@
 
     goto_buffer(eap, DOBUF_LAST, BACKWARD, 0);
     if (eap->do_ecmd_cmd != NULL)
-	do_cmdline_cmd(eap->do_ecmd_cmd);
+	do_cmd_argument(eap->do_ecmd_cmd);
 }
 
 /*
@@ -6680,7 +6693,7 @@
     else
     {
 	if (eap->do_ecmd_cmd != NULL)
-	    do_cmdline_cmd(eap->do_ecmd_cmd);
+	    do_cmd_argument(eap->do_ecmd_cmd);
 #ifdef FEAT_TITLE
 	n = curwin->w_arg_idx_invalid;
 #endif
diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro
index f8cb7ef..374d399 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -1,6 +1,7 @@
 /* ex_docmd.c */
 void do_exmode(int improved);
 int do_cmdline_cmd(char_u *cmd);
+int do_cmd_argument(char_u *cmd);
 int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie, int flags);
 int getline_equal(char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie, char_u *(*func)(int, void *, int, getline_opt_T));
 void *getline_cookie(char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie);
diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 97110ce..d0f9872 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -648,5 +648,17 @@
   CheckScriptSuccess(lines)
 enddef
 
+def Test_cmd_argument_without_colon()
+  new Xfile
+  setline(1, ['a', 'b', 'c', 'd'])
+  write
+  edit +3 %
+  assert_equal(3, getcurpos()[1])
+  edit +/a %
+  assert_equal(1, getcurpos()[1])
+  bwipe
+  delete('Xfile')
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index 4c54fe5..c653cdc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2052,
+/**/
     2051,
 /**/
     2050,
diff --git a/src/vim.h b/src/vim.h
index d2e22fe..6dcc509 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1043,6 +1043,7 @@
 #define DOCMD_KEYTYPED	0x08	// don't reset KeyTyped
 #define DOCMD_EXCRESET	0x10	// reset exception environment (for debugging)
 #define DOCMD_KEEPLINE  0x20	// keep typed line for repeating with "."
+#define DOCMD_RANGEOK	0240	// can use a range without ":" in Vim9 script
 
 // flags for beginline()
 #define BL_WHITE	1	// cursor on first non-white in the line
