Index: Lib/ssl.py =================================================================== --- Lib/ssl.py (revision 79391) +++ Lib/ssl.py (working copy) @@ -255,7 +255,18 @@ def unwrap(self): if self._sslobj: - s = self._sslobj.shutdown() + s = 0 + try: + s = self._sslobj.shutdown() + except SSLError, err: + # Issue 8108. + # See also: http://marc.info/?l=openssl-users&m=126838806919896 + if err.args[0] not in (SSL_ERROR_WANT_READ, + SSL_ERROR_WANT_WRITE): + raise + except socket_error: + # remote site dropped the connection (errno.EPIPE or 0) + pass self._sslobj = None return s else: