$OpenBSD$ --- src/lib/libscrobble.cpp.orig Fri Aug 7 12:25:18 2009 +++ src/lib/libscrobble.cpp Fri Aug 7 13:21:15 2009 @@ -187,13 +187,20 @@ Scrobble::Scrobble() tzset(); // our own copy - returned via get_dst - is_dst = daylight; + time_t t = time(0); + tm *local_tm; + local_tm = localtime((time(&t), &t)); + + is_dst = local_tm->tm_isdst; (is_dst)?zonename=tzname[1]:zonename=tzname[0]; if (is_dst < 0) add_log(LOG_ERROR, "is_dst < 0"); - offset = -(int)timezone; + struct timezone tz; + struct timeval tp; + gettimeofday(&tp, &tz); + offset = -(tz.tz_minuteswest * 60); #ifdef altzone // defined in , but only recent(ish) POSIX offset = -(int)altzone;