#1177: accept 2xx responses for https too, not only http.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 96115fbe..ad0e72b 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -435,7 +435,9 @@
                 # something went wrong with the HTTP status line
                 raise IOError, ('http protocol error', 0,
                                 'got a bad status line', None)
-            if errcode == 200:
+            # According to RFC 2616, "2xx" code indicates that the client's
+            # request was successfully received, understood, and accepted.
+            if not (200 <= errcode < 300):
                 return addinfourl(fp, headers, "https:" + url)
             else:
                 if data is None: