issue1177: Ported Facundo's from urllib2 to urllib, accepting 2xx responses.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index 5f3ec3c..96115fbe 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -340,7 +340,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, "http:" + url)
         else:
             if data is None: