It fixed that problem form my point of view -- meaning it comes out of that loop. Now there's a hang in outzone() in zic.c. At line 1439 it loops over every year once again.
Here the solution may be in the "setboundaries" code in "zic.c". Since time zone files only encode four characters (32 bits) worth of time_t values, min_time and max_time (and min_year and max_year) might be limited. A cheap way to hot-wire things for testing purposes is to add the lines min_time = 0; max_time = 0x7fffffffL; just above the min_year = TM_YEAR_BASE + gmtime(&min_time)->tm_year; max_year = TM_YEAR_BASE + gmtime(&max_time)->tm_year; lines in "setboundaries" This begs the question of whether the format of time zone files would need to be changed to allow for 64-bit time_t values (with attendant interoperability considerations). --ado