diff --git a/src/os_win32.c b/src/os_win32.c
index 6981d2f..5114863 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -4612,20 +4612,34 @@
 mch_system(char *cmd, int options)
 {
     int ret;
+    HANDLE hTemp = INVALID_HANDLE_VALUE;
 
     /*
-     * Restore non-termcap screen buffer before execute external program, and
-     * revert it after.  Because msys and msys2's programs will cause freeze
-     * or crash conhost.exe (Windows's console window provider) and vim.exe,
-     * if active screen buffer is vim's one on Windows7.
+     * Call DuplicateHandle before executing an external program, because msys
+     * and msys2's programs will call CreateConsoleScreenBuffer and
+     * CloseHandle.  CreateConsoleScreenBuffer returns the same handle which
+     * created by vim.  This causes a crash. This workaround is required on
+     * Windows7.
      */
-    if (is_win7 && g_fTermcapMode)
-	SetConsoleActiveScreenBuffer(g_cbNonTermcap.handle);
+    if (is_win7
+	    && g_fTermcapMode
+	    && DuplicateHandle(
+		    GetCurrentProcess(),
+		    g_hConOut,
+		    GetCurrentProcess(),
+		    &hTemp,
+		    0,
+		    TRUE,
+		    DUPLICATE_SAME_ACCESS))
+	SetConsoleActiveScreenBuffer(hTemp);
 
     ret = mch_system1(cmd, options);
 
-    if (is_win7 && g_fTermcapMode)
-	SetConsoleActiveScreenBuffer(g_cbTermcap.handle);
+    if (hTemp != INVALID_HANDLE_VALUE)
+    {
+	SetConsoleActiveScreenBuffer(g_hConOut);
+	CloseHandle(hTemp);
+    }
 
     return ret;
 }
diff --git a/src/version.c b/src/version.c
index f31f1bd..5160298 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    886,
+/**/
     885,
 /**/
     884,
