diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c index eaf11831b0c..c0a66efd563 100644 --- a/dlls/kernel32/locale.c +++ b/dlls/kernel32/locale.c @@ -2513,6 +2513,9 @@ LCID WINAPI ConvertDefaultLocale( LCID lcid ) switch (lcid) { + case LOCALE_INVARIANT: + /* keep as-is */ + break; case LOCALE_SYSTEM_DEFAULT: lcid = GetSystemDefaultLCID(); break; diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c index 86adcdb313a..51e2b073a04 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c @@ -3132,6 +3132,9 @@ static void test_ConvertDefaultLocale(void) LCID_RES(LOCALE_SYSTEM_DEFAULT, GetSystemDefaultLCID()); LCID_RES(LOCALE_USER_DEFAULT, GetUserDefaultLCID()); LCID_RES(LOCALE_NEUTRAL, GetUserDefaultLCID()); + lcid = ConvertDefaultLocale(LOCALE_INVARIANT); + ok(lcid == LOCALE_INVARIANT || broken(lcid == 0x47f) /* win2k[3]/winxp */, + "Expected lcid = %08x, got %08x\n", LOCALE_INVARIANT, lcid); } static BOOL CALLBACK langgrp_procA(LGRPID lgrpid, LPSTR lpszNum, LPSTR lpszName,