diff -r 5d70ac83d104 Lib/http/client.py --- a/Lib/http/client.py Thu Jul 24 12:44:07 2014 +0200 +++ b/Lib/http/client.py Thu Jul 24 16:34:46 2014 -0700 @@ -835,8 +835,7 @@ if self.sock: raise RuntimeError("Can't set up tunnel for established connection") - self._tunnel_host = host - self._tunnel_port = port + self._tunnel_host, self._tunnel_port = self._get_hostport(host, port) if headers: self._tunnel_headers = headers else: diff -r 5d70ac83d104 Lib/test/test_httplib.py --- a/Lib/test/test_httplib.py Thu Jul 24 12:44:07 2014 +0200 +++ b/Lib/test/test_httplib.py Thu Jul 24 16:34:46 2014 -0700 @@ -1235,6 +1235,11 @@ conn.set_tunnel('destination.com') conn.request('HEAD', '/', '') + try: + int(conn._tunnel_port) + except TypeError: + self.fail('Invalid tunnel port value') + self.assertEqual(conn.sock.host, 'proxy.com') self.assertEqual(conn.sock.port, 80) self.assertTrue(b'CONNECT destination.com' in conn.sock.data)