diff --git a/Lib/urllib.py b/Lib/urllib.py
index 62b0787..9a2c0ba 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -560,18 +560,24 @@
         """Error 401 -- authentication required.
         See this URL for a description of the basic authentication scheme:
         http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-00.txt"""
-        if headers.has_key('www-authenticate'):
-            stuff = headers['www-authenticate']
-            import re
-            match = re.match('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', stuff)
-            if match:
-                scheme, realm = match.groups()
-                if scheme.lower() == 'basic':
-                    name = 'retry_' + self.type + '_basic_auth'
-                    if data is None:
-                        return getattr(self,name)(url, realm)
-                    else:
-                        return getattr(self,name)(url, realm, data)
+        if not headers.has_key('www-authenticate'):
+            URLopener.http_error_default(self, url, fp, 
+                                         errmsg, headers)
+        stuff = headers['www-authenticate']
+        import re
+        match = re.match('[ \t]*([^ \t]+)[ \t]+realm="([^"]*)"', stuff)
+        if not match:
+            URLopener.http_error_default(self, url, fp, 
+                                         errcode, errmsg, headers)
+        scheme, realm = match.groups()
+        if scheme.lower() != 'basic':
+            URLopener.http_error_default(self, url, fp, 
+                                         errcode, errmsg, headers)
+        name = 'retry_' + self.type + '_basic_auth'
+        if data is None:
+            return getattr(self,name)(url, realm)
+        else:
+            return getattr(self,name)(url, realm, data)
 
     def retry_http_basic_auth(self, url, realm, data=None):
         host, selector = splithost(url)
