Index: Lib/asyncore.py =================================================================== --- Lib/asyncore.py (revision 64788) +++ Lib/asyncore.py (working copy) @@ -413,8 +413,12 @@ self.handle_read() def handle_connect_event(self): - self.connected = True - self.handle_connect() + err = self.socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) + if err != 0: + raise socket.error(err, _strerror(err)) + else: + self.handle_connect() + self.connected = True def handle_write_event(self): if self.accepting: