Index: Lib/asyncore.py =================================================================== --- Lib/asyncore.py (revision 70928) +++ Lib/asyncore.py (working copy) @@ -53,7 +53,7 @@ import os from errno import EALREADY, EINPROGRESS, EWOULDBLOCK, ECONNRESET, \ - ENOTCONN, ESHUTDOWN, EINTR, EISCONN, EBADF, ECONNABORTED, errorcode + ENOTCONN, ESHUTDOWN, EINTR, EISCONN, EBADF, ECONNABORTED, EPIPE, errorcode try: socket_map @@ -354,7 +354,8 @@ except socket.error, why: if why.args[0] == EWOULDBLOCK: return 0 - elif why.args[0] in (ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED): + elif why.args[0] in (ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED,\ + EPIPE): self.handle_close() return 0 else: @@ -372,7 +373,8 @@ return data except socket.error, why: # winsock sometimes throws ENOTCONN - if why.args[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED]: + if why.args[0] in (ECONNRESET, ENOTCONN, ESHUTDOWN, ECONNABORTED, \ + EPIPE): self.handle_close() return '' else: