Andy Dustman notes that I patched the close() call in the wrong place.
Here's the correct patch!
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index d8081ef..fe1402e 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -300,11 +300,11 @@
             # Child process.
             # This must never return, hence os._exit()!
             try:
+                self.socket.close()
                 self.finish_request(request, client_address)
                 os._exit(0)
             except:
                 try:
-                    self.socket.close()
                     self.handle_error(request,
                                       client_address)
                 finally: