diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 28ecaed..793a104 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1305,8 +1305,10 @@
 	eap->cmdidx = excmd_get_cmdidx(cmd, len);
 
 	// User defined commands support alphanumeric characters.
-	// Also when doing fuzzy expansion, support alphanumeric characters.
-	if ((cmd[0] >= 'A' && cmd[0] <= 'Z') || (fuzzy && *p != NUL))
+	// Also when doing fuzzy expansion for non-shell commands, support
+	// alphanumeric characters.
+	if ((cmd[0] >= 'A' && cmd[0] <= 'Z')
+		|| (fuzzy && eap->cmdidx != CMD_bang && *p != NUL))
 	    while (ASCII_ISALNUM(*p) || *p == '*')	// Allow * wild card
 		++p;
     }
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index e1ee633..cd9aa27 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -3144,6 +3144,16 @@
   endfor
 endfunc
 
+" Test for :! shell command argument completion
+func Test_cmdline_complete_bang_cmd_argument()
+  set wildoptions=fuzzy
+  call feedkeys(":!vim test_cmdline.\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"!vim test_cmdline.vim', @:)
+  set wildoptions&
+  call feedkeys(":!vim test_cmdline.\<Tab>\<C-B>\"\<CR>", 'xt')
+  call assert_equal('"!vim test_cmdline.vim', @:)
+endfunc
+
 func Check_completion()
   call assert_equal('let a', getcmdline())
   call assert_equal(6, getcmdpos())
diff --git a/src/version.c b/src/version.c
index 7c58424..74fb0e1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    89,
+/**/
     88,
 /**/
     87,
