Index: Misc/NEWS =================================================================== --- Misc/NEWS (revision 84322) +++ Misc/NEWS (working copy) @@ -33,6 +33,9 @@ Library ------- +- Issue #8797: urllib2 does a retry for Basic Authentication failure instead of + falling into recursion. + - Issue #1194222: email.utils.parsedate now returns RFC2822 compliant four character years even if the message contains RFC822 two character years. Index: Lib/urllib2.py =================================================================== --- Lib/urllib2.py (revision 84322) +++ Lib/urllib2.py (working copy) @@ -843,7 +843,10 @@ if mo: scheme, quote, realm = mo.groups() if scheme.lower() == 'basic': - return self.retry_http_basic_auth(host, req, realm) + response = self.retry_http_basic_auth(host, req, realm) + if response and response.code != 401: + self.retried = 0 + return response def retry_http_basic_auth(self, host, req, realm): user, pw = self.passwd.find_user_password(realm, host)