Index: source/common/locid.cpp |
diff --git a/source/common/locid.cpp b/source/common/locid.cpp |
index 84cb98675c2f11e04700793404dd26659e79081d..54d5cdbf3f54fb52c50f68cbb679b1e50a4f7352 100644 |
--- a/source/common/locid.cpp |
+++ b/source/common/locid.cpp |
@@ -484,6 +484,13 @@ Locale& Locale::init(const char* localeID, UBool canonicalize) |
/* preset all fields to empty */ |
language[0] = script[0] = country[0] = 0; |
+ // Need to reset baseName. Otherwise, when a Locale object created with |
+ // the default constructor is changed with setFromPOSIXID() later |
+ // (e.g. locales obtained with getAvailableLocales()), |
+ // baseName will be still that of the default locale instead of one |
+ // corresponding to localeID. |
+ baseName = NULL; |
+ |
// "canonicalize" the locale ID to ICU/Java format |
err = U_ZERO_ERROR; |
length = canonicalize ? |