Index: Lib/test/test_smtpnet.py =================================================================== --- Lib/test/test_smtpnet.py (revision 0) +++ Lib/test/test_smtpnet.py (revision 0) @@ -0,0 +1,21 @@ +#!/usr/bin/env python + +import unittest +from test import support +import smtplib + +class SmtpSSLTest(unittest.TestCase): + testServer = 'smtp.gmail.com' + remotePort = 465 + + def test_connect(self): + server = smtplib.SMTP_SSL(self.testServer, self.remotePort) + server.ehlo() + server.quit() + +def test_main(): + support.requires("network") + support.run_unittest(SmtpSSLTest) + +if __name__ == "__main__": + test_main() Index: Lib/smtplib.py =================================================================== --- Lib/smtplib.py (revision 71995) +++ Lib/smtplib.py (working copy) @@ -757,9 +757,10 @@ def _get_socket(self, host, port, timeout): if self.debuglevel > 0: print('connect:', (host, port), file=stderr) - self.sock = socket.create_connection((host, port), timeout) - self.sock = ssl.wrap_socket(self.sock, self.keyfile, self.certfile) - self.file = SSLFakeFile(self.sock) + new_socket = socket.create_connection((host, port), timeout) + new_socket = ssl.wrap_socket(new_socket, self.keyfile, self.certfile) + self.file = SSLFakeFile(new_socket) + return new_socket __all__.append("SMTP_SSL")