Strip square brackets from IPv6 address.
diff --git a/Lib/httplib.py b/Lib/httplib.py
index b7276af..c88b172 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -534,6 +534,8 @@
                 host = host[:i]
             else:
                 port = self.default_port
+	    if host[0] == '[' and host[-1] == ']':
+	        host = host[1:-1]
         self.host = host
         self.port = port
 
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index 046f4f8..b0d7338 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -118,12 +118,17 @@
         else:
             print "Expect InvalidURL"
 
-    for hp in ("[fe80::207:e9ff:fe9b]:8000", "www.python.org:80",
-               "www.python.org", "[fe80::207:e9ff:fe9b]"):
+    for hp,h,p in (("[fe80::207:e9ff:fe9b]:8000", "fe80::207:e9ff:fe9b", 8000), 
+                   ("www.python.org:80", "www.python.org", 80),
+                   ("www.python.org", "www.python.org", 80),
+	           ("[fe80::207:e9ff:fe9b]", "fe80::207:e9ff:fe9b", 80)):
         try:
-            h = httplib.HTTP(hp)
+            http = httplib.HTTP(hp)
         except httplib.InvalidURL:
             print "InvalidURL raised erroneously"
+	c = http._conn
+	if h != c.host: raise AssertionError, ("Host incorrectly parsed", h, c.host)
+	if p != c.port: raise AssertionError, ("Port incorrectly parsed", p, c.host)
 
     # test response with multiple message headers with the same field name.
     text = ('HTTP/1.1 200 OK\r\n'