diff -u a/i18n/vtzone.cpp a/i18n/vtzone.cpp --- a/i18n/vtzone.cpp 2023-07-14 09:05:38.000000000 +0100 +++ b/i18n/vtzone.cpp 2023-07-14 09:05:38.000000000 +0100 @@ -1735,14 +1735,14 @@ } } } else { - UnicodeString icutzprop; - UVector customProps(nullptr, uhash_compareUnicodeString, status); + UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status); if (olsonzid.length() > 0 && icutzver.length() > 0) { - icutzprop.append(olsonzid); - icutzprop.append(u'['); - icutzprop.append(icutzver); - icutzprop.append(u']'); - customProps.addElement(&icutzprop, status); + LocalPointer icutzprop(new UnicodeString(ICU_TZINFO_PROP), status); + icutzprop->append(olsonzid); + icutzprop->append(u'['); + icutzprop->append(icutzver); + icutzprop->append(u']'); + customProps.adoptElement(icutzprop.orphan(), status); } writeZone(writer, *tz, &customProps, status); }