Hi Ian, I found your posting very helpful.
The bug still seems to be there at least under glibc 2.3.2 (redhat 9). I noticed it in smartd (package: smartmontools) and have just fixed it in the code. One small item. I think your suggested inner loop block: if (!getenv("TZ")) { putenv("TZ=GMT"); tzset(); putenv("TZ"); } should read: if (!getenv("TZ")) { putenv("TZ=GMT"); tzset(); putenv("TZ"); tzset(); } since you were flying to London, you might not have noticed this! Cheers, Bruce