diff -Nrup a/timezone/zic.c b/timezone/zic.c --- a/timezone/zic.c 2013-07-19 07:25:11.726506479 -0600 +++ b/timezone/zic.c 2013-07-19 07:27:15.059083404 -0600 @@ -2473,14 +2473,12 @@ oadd(t1, t2) const long t1; const long t2; { - register long t; - - t = t1 + t2; - if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1)) { + if (t1 < 0 ? t2 < LONG_MIN - t1 : LONG_MAX - t1 < t2) { error(_("time overflow")); exit(EXIT_FAILURE); } - return t; + + return t1 + t2; } static zic_t