Index: asynchat.py =================================================================== --- asynchat.py (revision 67040) +++ asynchat.py (working copy) @@ -183,11 +183,21 @@ self.producer_fifo.append(data[i:i+sabs]) else: self.producer_fifo.append(data) - self.initiate_send() + try: + self.initiate_send() + except (asyncore.ExitNow, KeyboardInterrupt, SystemExit): + raise + except: + self.handle_error() def push_with_producer (self, producer): self.producer_fifo.append(producer) - self.initiate_send() + try: + self.initiate_send() + except (asyncore.ExitNow, KeyboardInterrupt, SystemExit): + raise + except: + self.handle_error() def readable (self): "predicate for inclusion in the readable for select()"