diff --git a/Lib/test/subprocessdata/fd_status.py b/Lib/test/subprocessdata/fd_status.py
index 083b2f9..1f61e13 100644
--- a/Lib/test/subprocessdata/fd_status.py
+++ b/Lib/test/subprocessdata/fd_status.py
@@ -3,22 +3,22 @@
 
 import errno
 import os
-import fcntl
 
 try:
     _MAXFD = os.sysconf("SC_OPEN_MAX")
 except:
     _MAXFD = 256
 
-def isopen(fd):
-    """Return True if the fd is open, and False otherwise"""
-    try:
-        fcntl.fcntl(fd, fcntl.F_GETFD, 0)
-    except IOError as e:
-        if e.errno == errno.EBADF:
-            return False
-        raise
-    return True
-
 if __name__ == "__main__":
-    print(','.join(str(fd) for fd in range(0, _MAXFD) if isopen(fd)))
+    fds = []
+    for fd in range(0, _MAXFD):
+        try:
+            st = os.fstat(fd)
+        except OSError as e:
+            if e.errno == errno.EBADF:
+                continue
+            raise
+        # Ignore Solaris door files
+        if st.st_mode & 0xF000 != 0xd000:
+            fds.append(fd)
+    print(','.join(map(str, fds)))
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index cf6684d..4b58308 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -1156,9 +1156,6 @@
 
         open_fds = set()
 
-        if support.verbose:
-            print(" -- maxfd =", subprocess.MAXFD)
-
         for x in range(5):
             fds = os.pipe()
             self.addCleanup(os.close, fds[0])
@@ -1173,10 +1170,6 @@
 
             remaining_fds = set(map(int, output.split(b',')))
             to_be_closed = open_fds - {fd}
-            # Temporary debug output for intermittent failures
-            if support.verbose:
-                print(" -- fds that should have been closed:", to_be_closed)
-                print(" -- fds that remained open:", remaining_fds)
 
             self.assertIn(fd, remaining_fds, "fd to be passed not passed")
             self.assertFalse(remaining_fds & to_be_closed,
diff --git a/Misc/NEWS b/Misc/NEWS
index 4d139e8..f3e7349 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,12 @@
 - Issue #11268: Prevent Mac OS X Installer failure if Documentation
   package had previously been installed.
 
+Tests
+-----
+
+- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
+  to open door files.
+
 
 What's New in Python 3.2?
 =========================
