diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 9557f2e..7f224f8 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -313,7 +313,36 @@
    with :!start do not get passed Vim's open file handles, which means they do
    not have to be closed before Vim.
    To avoid this special treatment, use ":! start".
-   The optional "/min" argument causes the window to be minimized.
+   There are two optional arguments (see the next Q):
+       /min  the window will be minimized.
+       /b"   no console window will be opened
+   You can only one of these flags at a time.  A second second one will be
+   treated as the start of the command.
+
+Q. How do I avoid getting a window for programs that I run asynchronously?
+A. You have two possible solutions depending on what exactly do you want:
+   1) You may use the /min flag that would run program in minimized state with
+      no other changes. It will work equally for console and GUI applications.
+   2) You can use /b flag to run console applications without creating a
+      console window for them (GUI applications are not affected). But you
+      should use this flag only if application you run doesn't require any
+      input.  Otherwise it will get an EOF error because it's input stream
+      (stdin) would be redirected to \\.\NUL (stdour and stderr too).
+
+   Example for a console application, run Exuberant ctags: >
+        :!start /min ctags -R .
+<  When it has finished you should see file named "tags" in your current
+   directory.  You should notice the window title blinking on your taskbar.
+   This is more noticable for commands that take longer.
+   Now delete the "tags" file and run this command: >
+        :!start /b ctags -R .
+<  You should have the same "tags" file, but this time there will be no
+   blinking on the taskbar.
+   Example for a GUI application: >
+        :!start /min notepad
+        :!start /b notepad
+<  The first command runs notepad minimized and the second one runs it
+   normally.
 
 Q. I'm using Win32s, and when I try to run an external command like "make",
    Vim doesn't wait for it to finish!  Help!
diff --git a/src/os_win32.c b/src/os_win32.c
index 179ee64..d4ef939 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -3401,6 +3401,7 @@
 	    {
 		STARTUPINFO		si;
 		PROCESS_INFORMATION	pi;
+		DWORD			flags = CREATE_NEW_CONSOLE;
 
 		si.cb = sizeof(si);
 		si.lpReserved = NULL;
@@ -3418,6 +3419,22 @@
 		    si.dwFlags = STARTF_USESHOWWINDOW;
 		    si.wShowWindow = SW_SHOWMINNOACTIVE;
 		}
+		else if ((STRNICMP(cmdbase, "/b", 2) == 0)
+			&& vim_iswhite(cmdbase[2]))
+		{
+		    cmdbase = skipwhite(cmdbase + 2);
+		    flags = CREATE_NO_WINDOW;
+		    si.dwFlags = STARTF_USESTDHANDLES;
+		    si.hStdInput = CreateFile("\\\\.\\NUL",	// File name
+			GENERIC_READ,				// Access flags
+			0,					// Share flags
+			NULL,					// Security att.
+			OPEN_EXISTING,				// Open flags
+			FILE_ATTRIBUTE_NORMAL,			// File att.
+			NULL);					// Temp file
+		    si.hStdOutput = si.hStdInput;
+		    si.hStdError = si.hStdInput;
+		}
 
 		/* When the command is in double quotes, but 'shellxquote' is
 		 * empty, keep the double quotes around the command.
@@ -3445,7 +3462,7 @@
 			NULL,			// Process security attributes
 			NULL,			// Thread security attributes
 			FALSE,			// Inherit handles
-			CREATE_NEW_CONSOLE,	// Creation flags
+			flags,			// Creation flags
 			NULL,			// Environment
 			NULL,			// Current directory
 			&si,			// Startup information
@@ -3458,6 +3475,11 @@
 		    EMSG(_("E371: Command not found"));
 #endif
 		}
+		if (si.hStdInput != NULL)
+		{
+		    /* Close the handle to \\.\NUL */
+		    CloseHandle(si.hStdInput);
+		}
 		/* Close the handles to the subprocess, so that it goes away */
 		CloseHandle(pi.hThread);
 		CloseHandle(pi.hProcess);
diff --git a/src/version.c b/src/version.c
index a85d4de..d8811b2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    203,
+/**/
     202,
 /**/
     201,
