--- streams2.py 2015-06-11 16:49:14.851855051 +0200 +++ streams.py 2015-06-11 16:50:14.772299457 +0200 @@ -194,9 +194,9 @@ if not self._paused: return waiter = self._drain_waiter - assert waiter is None or waiter.cancelled() - waiter = futures.Future(loop=self._loop) - self._drain_waiter = waiter + if waiter is None or waiter.cancelled(): + waiter = futures.Future(loop=self._loop) + self._drain_waiter = waiter yield from waiter