diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 98ca232c2c78edbaf5c785fb88bdb5d4e0d60de9..299ea625b157295e39c757f9af55e9566f3bfd0c 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -33,9 +33,6 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 Before release 7.3:
 - Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
 
-:!cmd completion doesn't work on Windows. (Yue Wu).
-Problem with space in path?
-
 Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
 
 Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 0d91a0b62c11a55d22cca659cde9e8300d5ed686..b338ed5ff4a8c6f499893ef41afd9c885f5358ed 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3423,17 +3423,16 @@ set_one_cmd_context(xp, buff)
 	    xp->xp_pattern = bow;
 	xp->xp_context = EXPAND_FILES;
 
-#ifndef BACKSLASH_IN_FILENAME
 	/* For a shell command more chars need to be escaped. */
 	if (usefilter || ea.cmdidx == CMD_bang)
 	{
+#ifndef BACKSLASH_IN_FILENAME
 	    xp->xp_shell = TRUE;
-
+#endif
 	    /* When still after the command name expand executables. */
 	    if (xp->xp_pattern == skipwhite(arg))
 		xp->xp_context = EXPAND_SHELLCMD;
 	}
-#endif
 
 	/* Check for environment variable */
 	if (*xp->xp_pattern == '$'
diff --git a/src/structs.h b/src/structs.h
index 31f71d23e3bdb13abe3aad332e990f22855618dc..884d6a9fe56caa5a7ec8f46e1f8cf98e06fa0d32 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -457,8 +457,8 @@ typedef struct expand
 #endif
     int		xp_backslash;		/* one of the XP_BS_ values */
 #ifndef BACKSLASH_IN_FILENAME
-    int		xp_shell;		/* for a shell command more characters
-					   need to be escaped */
+    int		xp_shell;		/* TRUE for a shell command, more
+					   characters need to be escaped */
 #endif
     int		xp_numfiles;		/* number of files found by
 						    file name completion */