Index: Include/pyport.h =================================================================== --- Include/pyport.h (revision 78731) +++ Include/pyport.h (working copy) @@ -666,6 +666,16 @@ #ifdef __FreeBSD__ #include #if __FreeBSD_version > 500039 +# define _PY_PORT_CTYPE_UTF8_ISSUE +#endif +#endif + + +#if defined(__APPLE__) +# define _PY_PORT_CTYPE_UTF8_ISSUE +#endif + +#ifdef _PY_PORT_CTYPE_UTF8_ISSUE #include #include #undef isalnum @@ -683,7 +693,6 @@ #undef toupper #define toupper(c) towupper(btowc(c)) #endif -#endif /* Declarations for symbol visibility. Index: Lib/test/test_locale.py =================================================================== --- Lib/test/test_locale.py (revision 78731) +++ Lib/test/test_locale.py (working copy) @@ -10,7 +10,13 @@ def get_enUS_locale(): global enUS_locale if sys.platform == 'darwin': - raise unittest.SkipTest("Locale support on MacOSX is minimal") + import os + tlocs = ("en_US.UTF-8", "en_US.ISO8859-1", "en_US") + if int(os.uname()[2].split('.')[0]) < 10: + # The locale test work fine on OSX 10.6, I (ronaldoussoren) + # haven't had time yet to verify if tests work on OSX 10.5 + # (10.4 is known to be bad) + raise unittest.SkipTest("Locale support on MacOSX is minimal") if sys.platform.startswith("win"): tlocs = ("En", "English") else: