diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 9659c20..a71adb8 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2745,15 +2745,18 @@
 	//   silent! verbose = func()
 	//   verbose.member = 2
 	//   verbose[expr] = 2
+	// But not:
+	//   verbose [a, b] = list
 	if (in_vim9script())
 	{
-	    char_u *s;
+	    char_u *s, *n;
 
 	    for (s = p; ASCII_ISALPHA(*s); ++s)
 		;
-	    s = skipwhite(s);
-	    if (vim_strchr((char_u *)".[=", *s) != NULL
-						 || (*s != NUL && s[1] == '='))
+	    n = skipwhite(s);
+	    if (vim_strchr((char_u *)".=", *n) != NULL
+		    || *s == '['
+		    || (*n != NUL && n[1] == '='))
 		break;
 	}
 
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 55b25ea..2148063 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1466,21 +1466,27 @@
 
 def Test_assign_command_modifier()
   var lines =<< trim END
-    var verbose = 0
-    verbose = 1
-    assert_equal(1, verbose)
-    silent verbose = 2
-    assert_equal(2, verbose)
-    silent verbose += 2
-    assert_equal(4, verbose)
-    silent verbose -= 1
-    assert_equal(3, verbose)
+      var verbose = 0
+      verbose = 1
+      assert_equal(1, verbose)
+      silent verbose = 2
+      assert_equal(2, verbose)
+      silent verbose += 2
+      assert_equal(4, verbose)
+      silent verbose -= 1
+      assert_equal(3, verbose)
 
-    var topleft = {one: 1}
-    sandbox topleft.one = 3
-    assert_equal({one: 3}, topleft)
-    leftabove topleft[' '] = 4
-    assert_equal({one: 3, ' ': 4}, topleft)
+      var topleft = {one: 1}
+      sandbox topleft.one = 3
+      assert_equal({one: 3}, topleft)
+      leftabove topleft[' '] = 4
+      assert_equal({one: 3, ' ': 4}, topleft)
+
+      var x: number
+      var y: number
+      silent [x, y] = [1, 2]
+      assert_equal(1, x)
+      assert_equal(2, y)
   END
   CheckDefAndScriptSuccess(lines)
 enddef
diff --git a/src/version.c b/src/version.c
index f4cfa2b..dc1114c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2317,
+/**/
     2316,
 /**/
     2315,
