I don't think that that mod is needed, the real problem is in the data files, which are allowing that EWT nonsense to creep into what should be pure EST/EDT stuff. I think the "right" fix is to remove the "Link" lines from the "northamerica" file (which provides the EST5EDT aliases) and put them in the "systemv" file, where the data should be an accurate System V emulation. Those files will always provide EST and EDT in tzname, no matter which happens to be the most recent zone name (if the user says he wants EST and EDT then that's what should be delivered, regardless of what the current zone name happens to be). Having said that, I have no real objection to the code either, though I think I'd do it in zic so it only needs to be done once (sort the ttis array so the "right" result is achieved in tzset()). Of course the "time(0)" should be "time((time_t *)0)". It makes more sense to fill in tzname[] with recent zone names in cases where there have been several that could fit. Or perhaps the "blessed" 2 zone names should be marked in the data file to avoid surprises. All this is just another nail in the coffin for tzname though as far as I'm concerned, pretending that there are two (or one) zone names, and that they can be characterised purely by whether its dst or not is hopeless. Both the Sys V and BSD standard timezone name stuff is trash, it all needs to be discarded completely. (Somehow I think I've said this before...) kre