A conservative course is to memset the state structure to all zeroes at the top of "tzload" (as below). An alternative is to change the three "malloc(sizeof *pointer)" calls to "calloc(1, sizeof *pointer) calls in localtime.c. I'm feeling conservative on this one. --ado ------- localtime.c ------- *** /tmp/geta8774 Tue Feb 16 17:24:44 2010 --- /tmp/getb8774 Tue Feb 16 17:24:44 2010 *************** *** 5,11 **** #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.10"; #endif /* !defined NOID */ #endif /* !defined lint */ --- 5,11 ---- #ifndef lint #ifndef NOID ! static char elsieid[] = "@(#)localtime.c 8.11"; #endif /* !defined NOID */ #endif /* !defined lint */ *************** *** 350,355 **** --- 350,356 ---- 4 * TZ_MAX_TIMES]; } u; + memset(sp, 0, sizeof *sp); if (name == NULL && (name = TZDEFAULT) == NULL) return -1; {