In collect_children(), put a try-except around os.waitpid() because it
may raise an exception (when there are no children).  Reported by
Andy Dustman.
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index 1ede68d..82bc8fb 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -285,7 +285,10 @@
     def collect_children(self):
         """Internal routine to wait for died children."""
         while self.active_children:
-            pid, status = os.waitpid(0, os.WNOHANG)
+            try:
+                pid, status = os.waitpid(0, os.WNOHANG)
+            except os.error:
+                pid = None
             if not pid: break
             self.active_children.remove(pid)