diff --git a/slixmpp/xmlstream/xmlstream.py b/slixmpp/xmlstream/xmlstream.py index c84b40e1..2cc5fe17 100644 --- a/slixmpp/xmlstream/xmlstream.py +++ b/slixmpp/xmlstream/xmlstream.py @@ -585,7 +585,11 @@ class XMLStream(asyncio.BaseProtocol): when the server acknowledgement is received), call connect() """ log.debug("reconnecting...") - self.add_event_handler('disconnected', lambda event: self.connect(), disposable=True) + async def handler(event): + # We yield here to allow synchronous handlers to work first + await asyncio.sleep(0, loop=self.loop) + self.connect() + self.add_event_handler('disconnected', handler, disposable=True) self.disconnect(wait, reason) def configure_socket(self):