I've been experiencing some time funniness on HPUX with respect to the calculation of the GMT offset.
Here are the results under HPUX: apr_explode_localtime(&xt, 0); xt.tm_gmtoff = -28800 xt.tm_isdst = 0 apr_explode_localtime(&xt, 967681226000000); xt.tm_gmtoff = -28800 xt.tm_isdst = 1 Under my Linux box: apr_explode_localtime(&xt, 0); xt.tm_gmtoff = -28800 xt.tm_isdst = 0 apr_explode_localtime(&xt, 967681226000000); xt.tm_gmtoff = -25200 xt.tm_isdst = 1 I believe the problem lies with the fact that we attempt to calculate 'server_gmt_offset' in the apr_unix_setup_time() function, but the gmt offset my change when requesting times in a dst different than the current one. For instance, the current time is used to formulate server_gmt_offset, and we are not in DST here in US/Pacific. Under Linux, we get the gmtoffset for free with our localtime call. I thought it might be that my HPUX box was just wacked out of its gourd wrt the timezone setup, but it looks correct after investigation. Perhaps the correct thing to do is determine the gmt offset during dst and also when we are not in it, and use different ones in get_offset() after checking dst (similar to the netware code.) -- Jon