diff --git a/src/ex_getln.c b/src/ex_getln.c
index 063900a..e659c1a 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -5193,16 +5193,6 @@
     hash_init(&found_ht);
     for (s = path; ; s = e)
     {
-	if (*s == NUL)
-	{
-	    if (did_curdir)
-		break;
-	    /* Find directories in the current directory, path is empty. */
-	    did_curdir = TRUE;
-	}
-	else if (*s == '.')
-	    did_curdir = TRUE;
-
 #if defined(MSWIN)
 	e = vim_strchr(s, ';');
 #else
@@ -5211,6 +5201,23 @@
 	if (e == NULL)
 	    e = s + STRLEN(s);
 
+	if (*s == NUL)
+	{
+	    if (did_curdir)
+		break;
+	    // Find directories in the current directory, path is empty.
+	    did_curdir = TRUE;
+	    flags |= EW_DIR;
+	}
+	else if (STRNCMP(s, ".", (int)(e - s)) == 0)
+	{
+	    did_curdir = TRUE;
+	    flags |= EW_DIR;
+	}
+	else
+	    // Do not match directories inside a $PATH item.
+	    flags &= ~EW_DIR;
+
 	l = e - s;
 	if (l > MAXPATHL - 5)
 	    break;
@@ -5266,8 +5273,6 @@
 
 
 # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
-static void * call_user_expand_func(void *(*user_expand_func)(char_u *, int, typval_T *, int), expand_T	*xp, int *num_file, char_u ***file);
-
 /*
  * Call "user_expand_func()" to invoke a user defined Vim script function and
  * return the result (either a string or a List).
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 26d33d8..f42d228 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -231,7 +231,7 @@
   call assert_equal([], l)
 
   let l = getcompletion('.', 'shellcmd')
-  call assert_equal(['./', '../'], l[0:1])
+  call assert_equal(['./', '../'], filter(l, 'v:val =~ "\\./"'))
   call assert_equal(-1, match(l[2:], '^\.\.\?/$'))
   let root = has('win32') ? 'C:\\' : '/'
   let l = getcompletion(root, 'shellcmd')
@@ -290,6 +290,29 @@
   call assert_fails('call getcompletion("", "burp")', 'E475:')
 endfunc
 
+func Test_shellcmd_completion()
+  let save_path = $PATH
+
+  call mkdir('Xpathdir/Xpathsubdir', 'p')
+  call writefile([''], 'Xpathdir/Xfile.exe')
+  call setfperm('Xpathdir/Xfile.exe', 'rwx------')
+
+  " Set PATH to example directory without trailing slash.
+  let $PATH = getcwd() . '/Xpathdir'
+
+  " Test for the ":!<TAB>" case.  Previously, this would include subdirs of
+  " dirs in the PATH, even though they won't be executed.  We check that only
+  " subdirs of the PWD and executables from the PATH are included in the
+  " suggestions.
+  let actual = getcompletion('X', 'shellcmd')
+  let expected = map(filter(glob('*', 0, 1), 'isdirectory(v:val) && v:val[0] == "X"'), 'v:val . "/"')
+  call insert(expected, 'Xfile.exe')
+  call assert_equal(expected, actual)
+
+  call delete('Xpathdir', 'rf')
+  let $PATH = save_path
+endfunc
+
 func Test_expand_star_star()
   call mkdir('a/b', 'p')
   call writefile(['asdfasdf'], 'a/b/fileXname')
diff --git a/src/version.c b/src/version.c
index 968ff96..e646a2b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -799,6 +799,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    223,
+/**/
     222,
 /**/
     221,
