diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index c72b6e0..4e45e11 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -4,6 +4,7 @@
 import sys
 import signal
 import os
+import errno
 import tempfile
 import time
 import re
@@ -772,11 +773,30 @@
         ProcessTestCase.tearDown(self)
 
 
+class HelperFunctionTests(unittest.TestCase):
+    def test_eintr_retry_call(self):
+        record_calls = []
+        def fake_os_func(*args):
+            record_calls.append(args)
+            if len(record_calls) == 2:
+                raise OSError(errno.EINTR, "fake interrupted system call")
+            return tuple(reversed(args))
+
+        self.assertEqual((999, 256),
+                         subprocess._eintr_retry_call(fake_os_func, 256, 999))
+        self.assertEqual([(256, 999)], record_calls)
+        # This time there will be an EINTR so it will loop once.
+        self.assertEqual((666,),
+                         subprocess._eintr_retry_call(fake_os_func, 666))
+        self.assertEqual([(256, 999), (666,), (666,)], record_calls)
+
+
 def test_main():
     unit_tests = (ProcessTestCase,
                   POSIXProcessTestCase,
                   Win32ProcessTestCase,
-                  ProcessTestCaseNoPoll)
+                  ProcessTestCaseNoPoll,
+                  HelperFunctionTests)
 
     test_support.run_unittest(*unit_tests)
     test_support.reap_children()
