diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index 27f4efc..58d6c0c 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -500,7 +500,7 @@
     """
     if 'stdout' in kwargs:
         raise ValueError('stdout argument not allowed, it will be overridden.')
-    process = Popen(*popenargs, stdout=PIPE, **kwargs)
+    process = Popen(stdout=PIPE, *popenargs, **kwargs)
     output, unused_err = process.communicate()
     retcode = process.poll()
     if retcode:
@@ -1020,8 +1020,17 @@
 
 
         def _close_fds(self, but):
-            os.closerange(3, but)
-            os.closerange(but + 1, MAXFD)
+            if hasattr(os, 'closerange'):
+                os.closerange(3, but)
+                os.closerange(but + 1, MAXFD)
+            else:
+                for i in xrange(3, MAXFD):
+                    if i == but:
+                        continue
+                    try:
+                        os.close(i)
+                    except:
+                        pass
 
 
         def _execute_child(self, args, executable, preexec_fn, close_fds,
diff --git a/Misc/NEWS b/Misc/NEWS
index ab00d38..839d819 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -327,6 +327,8 @@
 Library
 -------
 
+- Issue #6189: Restored compatibility of subprocess.py with Python 2.2.
+
 - Issue #6287: Added the license field in Distutils documentation.
 
 - Issue #6286: Now Distutils upload command is based on urllib2 instead of
