diff --git a/src/os_win32.c b/src/os_win32.c
index 2f764d3dc98094b1e1ac13cc7105c6b379061b6c..57f004ec24ed7055f903fec562d40e04f4fedbc6 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -4008,21 +4008,23 @@ mch_call_shell(
 	    if (flags != CREATE_NEW_CONSOLE)
 	    {
 		char_u	*subcmd;
-		char_u	*cmd_shell = default_shell();
+		char_u	*cmd_shell = mch_getenv("COMSPEC");
+
+		if (cmd_shell == NULL || *cmd_shell == NUL)
+		    cmd_shell = default_shell();
 
 		subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
 		if (subcmd != NULL)
 		{
 		    /* make "cmd.exe /c arguments" */
 		    cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
-		    vim_free(subcmd);
-
 		    newcmd = lalloc(cmdlen, TRUE);
 		    if (newcmd != NULL)
 			vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
-						       default_shell, subcmd);
+						       cmd_shell, subcmd);
 		    else
 			newcmd = cmdbase;
+		    vim_free(subcmd);
 		}
 	    }
 
diff --git a/src/version.c b/src/version.c
index f4c76372db5fbe50ac66791e18922d79ba4f1c8e..119ad48764403b68ead7cd85229e4d565a9b1f20 100644
--- a/src/version.c
+++ b/src/version.c
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    450,
 /**/
     449,
 /**/