- repaired locale.py for non-windows platforms.  the try/except
  checked for the wrong exception.  my fault.  sorry.
  (first reported by Alex Coventry)
diff --git a/Lib/locale.py b/Lib/locale.py
index 47f5c4e..1014dbd 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -282,16 +282,19 @@
         be determined.
 
     """
+
     try:
         # check if it's supported by the _locale module
         import _locale
         code, encoding = _locale._getdefaultlocale()
+    except (ImportError, AttributeError):
+        pass
+    else:
         if sys.platform == "win32" and code and code[:2] == "0x":
             # map windows language identifier to language name
             code = windows_locale.get(int(code, 0))
         return code, encoding
-    except (ImportError, NameError):
-        pass
+
     # fall back on POSIX behaviour
     import os
     lookup = os.environ.get