1diff --git a/source/common/locid.cpp b/source/common/locid.cpp 2index 64ff63f3..888b3d35 100644 3--- a/source/common/locid.cpp 4+++ b/source/common/locid.cpp 5@@ -2689,11 +2689,11 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro 6 } 7 uprv_strcpy(newFullName, fullName); 8 if (fullName != fullNameBuffer) { 9- // if full Name is already on the heap, need to free it. 10- uprv_free(fullName); 11 if (baseName == fullName) { 12 baseName = newFullName; // baseName should not point to freed memory. 13 } 14+ // if full Name is already on the heap, need to free it. 15+ uprv_free(fullName); 16 } 17 fullName = newFullName; 18 status = U_ZERO_ERROR; 19