Index: /trunk/trac/trac/web/wsgi.py
===================================================================
--- /trunk/trac/trac/web/wsgi.py (revision 5)
+++ /trunk/trac/trac/web/wsgi.py (revision 198)
@@ -178,8 +178,11 @@
         try:
             environ = self.setup_environ()
-        except (IOError, socket.error), e:
+        except (IOError, socket.error, socket.timeout), e:
             environ = None
             if e.args[0] in (errno.EPIPE, errno.ECONNRESET, 10053, 10054):
                 # client disconnect
+                self.close_connection = 1
+            elif isinstance(e,socket.timeout):
+                # client connection timedout
                 self.close_connection = 1
             else:

