Taken from https://bugs.gentoo.org/show_bug.cgi?id=535758 Kudos to Anton Bolshakov for this patch --- xmpp/transports.py.orig 2015-01-05 15:41:23.000000000 +0800 +++ xmpp/transports.py 2015-01-06 15:52:25.916240681 +0800 @@ -27,7 +27,7 @@ Also exception 'error' is defined to allow capture of this module specific exceptions. """ -import socket,select,base64,dispatcher,sys +import socket,ssl,select,base64,dispatcher,sys from simplexml import ustr from client import PlugIn from protocol import * @@ -314,9 +314,10 @@ """ Here we should switch pending_data to hint mode.""" tcpsock=self._owner.Connection warnings.filterwarnings("ignore", "socket\.ssl.*ssl\.wrap_socket", DeprecationWarning) - tcpsock._sslObj = socket.ssl(tcpsock._sock, None, None) - tcpsock._sslIssuer = tcpsock._sslObj.issuer() - tcpsock._sslServer = tcpsock._sslObj.server() + tcpsock._sslObj = ssl.wrap_socket(tcpsock._sock, None, None) + tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer') + tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server') + tcpsock._recv = tcpsock._sslObj.read tcpsock._send = tcpsock._sslObj.write