=== modified file 'twisted/internet/_dumbwin32proc.py'
--- twisted/internet/_dumbwin32proc.py	2011-10-02 01:01:47 +0000
+++ twisted/internet/_dumbwin32proc.py	2012-06-05 17:56:17 +0000
@@ -172,8 +172,9 @@
         cmdline = quoteArguments(args)
         # TODO: error detection here.  See #2787 and #4184.
         def doCreate():
+            flags = win32con.CREATE_NO_WINDOW
             self.hProcess, self.hThread, self.pid, dwTid = win32process.CreateProcess(
-                command, cmdline, None, None, 1, 0, env, path, StartupInfo)
+                command, cmdline, None, None, 1, flags, env, path, StartupInfo)
         try:
             try:
                 doCreate()

=== modified file 'twisted/test/test_process.py'
--- twisted/test/test_process.py	2012-05-15 12:40:55 +0000
+++ twisted/test/test_process.py	2012-06-05 17:56:17 +0000
@@ -2271,6 +2271,41 @@
 
 
 
+class Win32CreateProcessFlagsTest(unittest.TestCase):
+    """
+    Check the flags passed to CreateProcess.
+    """
+
+    @defer.inlineCallbacks
+    def test_flags(self):
+        """
+        Verify the flags passed to win32process.CreateProcess().
+        """
+        from twisted.internet import _dumbwin32proc
+        flags = []
+        real_CreateProcess = _dumbwin32proc.win32process.CreateProcess
+
+        def fake_createprocess(*args):
+            """Store the args for later comparing."""
+            flags.append(args)
+            return real_CreateProcess(*args)
+
+        self.patch(_dumbwin32proc.win32process, "CreateProcess",
+                   fake_createprocess)
+        exe = sys.executable
+        scriptPath = util.sibpath(__file__, "process_cmdline.py")
+
+        d = defer.Deferred()
+        processProto = TrivialProcessProtocol(d)
+        comspec = str(os.environ["COMSPEC"])
+        cmd = [comspec, "/c", exe, scriptPath]
+        _dumbwin32proc.Process(reactor, processProto, None, cmd, {}, None)
+        yield d
+        self.assertEqual(flags[0][5],
+                         _dumbwin32proc.win32process.CREATE_NO_WINDOW)
+
+
+
 class UtilTestCase(unittest.TestCase):
     """
     Tests for process-related helper functions (currently only
@@ -2474,6 +2509,7 @@
     Win32ProcessTestCase.skip = skipMessage
     TestTwoProcessesNonPosix.skip = skipMessage
     Dumbwin32procPidTest.skip = skipMessage
+    Win32CreateProcessFlagsTest.skip = skipMessage
     Win32UnicodeEnvironmentTest.skip = skipMessage
 
 if not interfaces.IReactorProcess(reactor, None):

