diff -r e86d0ef45e21 Lib/asyncio/selector_events.py --- a/Lib/asyncio/selector_events.py Fri Jan 09 00:13:39 2015 +0100 +++ b/Lib/asyncio/selector_events.py Fri Jan 09 01:11:36 2015 +0100 @@ -748,7 +748,7 @@ class _SelectorSslTransport(_SelectorTra self._loop.remove_reader(self._sock_fd) self._loop.remove_writer(self._sock_fd) self._sock.close() - if self._waiter is not None: + if self._waiter is not None and not self._waiter.cancelled(): self._waiter.set_exception(exc) if isinstance(exc, Exception): return @@ -772,7 +772,8 @@ class _SelectorSslTransport(_SelectorTra "on matching the hostname", self, exc_info=True) self._sock.close() - if self._waiter is not None: + if (self._waiter is not None + and not self._waiter.cancelled()): self._waiter.set_exception(exc) return diff -r e86d0ef45e21 Lib/asyncio/subprocess.py --- a/Lib/asyncio/subprocess.py Fri Jan 09 00:13:39 2015 +0100 +++ b/Lib/asyncio/subprocess.py Fri Jan 09 01:11:36 2015 +0100 @@ -60,7 +60,8 @@ class SubprocessStreamProtocol(streams.F protocol=self, reader=None, loop=self._loop) - self.waiter.set_result(None) + if not self.waiter.cancelled(): + self.waiter.set_result(None) def pipe_data_received(self, fd, data): if fd == 1: