diff --git a/ProcessWin32.c b/ProcessWin32.c
index 5f321a93ec76b3eee3929574e6db72825e047a8a..8194008673b7df9438dda1464e56cf98ed7c0d43 100644
--- a/ProcessWin32.c
+++ b/ProcessWin32.c
@@ -673,7 +673,8 @@ void kwsysProcess_Execute(kwsysProcess* cp)
   cp->TimeoutTime = kwsysProcessTimeFromDouble(-1);
   
   /* CREATE THE CHILD PROCESS */
-  if(!CreateProcess(0, cp->RealCommand, 0, 0, TRUE, CREATE_NEW_CONSOLE, 0,
+  if(!CreateProcess(0, cp->RealCommand, 0, 0, TRUE,
+                    cp->Win9x? CREATE_NEW_CONSOLE:DETACHED_PROCESS, 0,
                     0, &si, &cp->ProcessInformation))
     {
     kwsysProcessCleanup(cp, 1);