Preserve command name, for later printing of active
commands. If there are active commands when the tests
start, fail, printing these commands.
diff --git a/Lib/popen2.py b/Lib/popen2.py
index 54543be..a4eda39 100644
--- a/Lib/popen2.py
+++ b/Lib/popen2.py
@@ -39,6 +39,7 @@
         specified, it specifies the size of the I/O buffers to/from the child
         process."""
         _cleanup()
+        self.cmd = cmd
         p2cread, p2cwrite = os.pipe()
         c2pread, c2pwrite = os.pipe()
         if capturestderr:
@@ -186,6 +187,9 @@
     __all__.extend(["Popen3", "Popen4"])
 
 def _test():
+    # When the test runs, there shouldn't be any open pipes
+    _cleanup()
+    assert not _active, "Active pipes when test starts " + repr([c.cmd for c in _active])
     cmd  = "cat"
     teststr = "ab cd\n"
     if os.name == "nt":
diff --git a/Misc/NEWS b/Misc/NEWS
index 402d075..ba078b2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -483,6 +483,8 @@
 Library
 -------
 
+- popen2.Popen objects now preserve the command in a .cmd attribute.
+
 - Added the ctypes ffi package.
 
 - email 4.0 package now integrated.  This is largely the same as the email 3.0