--- sys-utils/hwclock.c.orig 2012-12-12 14:04:22.976355744 -0600 +++ sys-utils/hwclock.c 2013-03-16 18:57:48.774606768 -0600 @@ -382,8 +382,15 @@ */ zone = getenv("TZ"); /* remember original time zone */ if (universal) { - /* Set timezone to UTC */ - setenv("TZ", "", TRUE); + /* Set timezone to UTC as defined by the environment + * variable TZUTC. TZUTC undefined gives the default UTC + * zonefile which usually does not take into account leap + * seconds. Define TZUTC to select your UTC zonefile which + * does include leap seconds. For example, with recent GNU + * libc's: + * TZUTC=:/usr/share/zoneinfo/right/UTC + */ + setenv("TZ", getenv("TZUTC"), TRUE); /* * Note: tzset() gets called implicitly by the time code, * but only the first time. When changing the environment