diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index f11e538..abf43e5 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1241,8 +1241,10 @@
             return (stdout, stderr)
 
         def send_signal(self, sig):
-            """Send a signal to the process
-            """
+            """Send a signal to the process."""
+            # Don't signal a process that we know has already died.
+            if self.returncode is not None:
+                return
             if sig == signal.SIGTERM:
                 self.terminate()
             elif sig == signal.CTRL_C_EVENT:
@@ -1253,8 +1255,10 @@
                 raise ValueError("Unsupported signal: {}".format(sig))
 
         def terminate(self):
-            """Terminates the process
-            """
+            """Terminates the process."""
+            # Don't terminate a process that we know has already died.
+            if self.returncode is not None:
+                return
             try:
                 _winapi.TerminateProcess(self._handle, 1)
             except PermissionError:
@@ -1678,9 +1682,10 @@
 
 
         def send_signal(self, sig):
-            """Send a signal to the process
-            """
-            os.kill(self.pid, sig)
+            """Send a signal to the process."""
+            # Skip signalling a process that we know has already died.
+            if self.returncode is None:
+                os.kill(self.pid, sig)
 
         def terminate(self):
             """Terminate the process with SIGTERM
diff --git a/Misc/NEWS b/Misc/NEWS
index 881f035..2d0755f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -106,6 +106,10 @@
 Library
 -------
 
+- Issue #6973: When we know a subprocess.Popen process has died, do
+  not allow the send_signal(), terminate(), or kill() methods to do
+  anything as they could potentially signal a different process.
+
 - Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer().
 
 - Issue #25590: In the Readline completer, only call getattr() once per
