*** 111,120 **** --- 111,126 ---- } break; } if (retVal != NULL) { + // convertToPOSIXLocale() does not expect any variant codes, so ignore + // '@' and anything following, if present. + char* rmAt = strchr(retVal, '@'); + if (rmAt != NULL) { + *rmAt = '\0'; + } return strdup(convertToPOSIXLocale(retVal)); } return NULL; }