diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 41772c6..032cac0 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -868,7 +868,6 @@
         """
         test__locale
         test_bsddb3
-        test_commands
         test_crypt
         test_curses
         test_dbm
@@ -910,7 +909,6 @@
         test_bsddb
         test_bsddb3
         test_bz2
-        test_commands
         test_crypt
         test_curses
         test_dbm
@@ -1060,7 +1058,6 @@
         """
         test_audioop
         test_bsddb3
-        test_commands
         test_curses
         test_dl
         test_epoll
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index 89395be..e33c54a 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -50,7 +50,6 @@
         self.check_all("codecs")
         self.check_all("codeop")
         self.check_all("colorsys")
-        self.check_all("commands")
         self.check_all("compileall")
         self.check_all("copy")
         self.check_all("copyreg")
diff --git a/Lib/test/test_commands.py b/Lib/test/test_commands.py
deleted file mode 100644
index b4e48ce..0000000
--- a/Lib/test/test_commands.py
+++ /dev/null
@@ -1,47 +0,0 @@
-'''
-   Tests for commands module
-   Nick Mathewson
-'''
-import unittest
-import os, tempfile, re
-
-from test.support import TestSkipped, run_unittest, reap_children
-from commands import *
-
-# The module says:
-#   "NB This only works (and is only relevant) for UNIX."
-#
-# Actually, getoutput should work on any platform with an os.popen, but
-# I'll take the comment as given, and skip this suite.
-
-if os.name != 'posix':
-    raise TestSkipped('Not posix; skipping test_commands')
-
-
-class CommandTests(unittest.TestCase):
-
-    def test_getoutput(self):
-        self.assertEquals(getoutput('echo xyzzy'), 'xyzzy')
-        self.assertEquals(getstatusoutput('echo xyzzy'), (0, 'xyzzy'))
-
-        # we use mkdtemp in the next line to create an empty directory
-        # under our exclusive control; from that, we can invent a pathname
-        # that we _know_ won't exist.  This is guaranteed to fail.
-        dir = None
-        try:
-            dir = tempfile.mkdtemp()
-            name = os.path.join(dir, "foo")
-
-            status, output = getstatusoutput('cat ' + name)
-            self.assertNotEquals(status, 0)
-        finally:
-            if dir is not None:
-                os.rmdir(dir)
-
-
-def test_main():
-    run_unittest(CommandTests)
-    reap_children()
-
-if __name__ == "__main__":
-    test_main()
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 3f877f2..c9a3e1b 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -702,10 +702,36 @@
             p.terminate()
             self.assertNotEqual(p.wait(), 0)
 
+class CommandTests(unittest.TestCase):
+# The module says:
+#   "NB This only works (and is only relevant) for UNIX."
+#
+# Actually, getoutput should work on any platform with an os.popen, but
+# I'll take the comment as given, and skip this suite.
+    if os.name == 'posix':
+
+        def test_getoutput(self):
+            self.assertEquals(subprocess.getoutput('echo xyzzy'), 'xyzzy')
+            self.assertEquals(subprocess.getstatusoutput('echo xyzzy'),
+                              (0, 'xyzzy'))
+
+            # we use mkdtemp in the next line to create an empty directory
+            # under our exclusive control; from that, we can invent a pathname
+            # that we _know_ won't exist.  This is guaranteed to fail.
+            dir = None
+            try:
+                dir = tempfile.mkdtemp()
+                name = os.path.join(dir, "foo")
+
+                status, output = subprocess.getstatusoutput('cat ' + name)
+                self.assertNotEquals(status, 0)
+            finally:
+                if dir is not None:
+                    os.rmdir(dir)
+
 def test_main():
-    support.run_unittest(ProcessTestCase)
-    if hasattr(support, "reap_children"):
-        support.reap_children()
+    support.run_unittest(ProcessTestCase, CommandTests)
+    support.reap_children()
 
 if __name__ == "__main__":
-    unittest.main()  # XXX test_main()
+    test_main()
