missed the obvious test case and corresponding fix
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 2f117d8..b7276af 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -525,7 +525,8 @@
     def _set_hostport(self, host, port):
         if port is None:
             i = host.rfind(':')
-            if i >= 0:
+            j = host.rfind(']')         # ipv6 addresses have [...]
+            if i > j:
                 try:
                     port = int(host[i+1:])
                 except ValueError:
diff --git a/Lib/test/test_httplib.py b/Lib/test/test_httplib.py
index b49f71d..046f4f8 100644
--- a/Lib/test/test_httplib.py
+++ b/Lib/test/test_httplib.py
@@ -119,7 +119,7 @@
             print "Expect InvalidURL"
 
     for hp in ("[fe80::207:e9ff:fe9b]:8000", "www.python.org:80",
-               "www.python.org"):
+               "www.python.org", "[fe80::207:e9ff:fe9b]"):
         try:
             h = httplib.HTTP(hp)
         except httplib.InvalidURL: