diff -up at-3.1.13/parsetime.y.dst at-3.1.13/parsetime.y --- at-3.1.13/parsetime.y.dst 2011-06-25 14:43:14.000000000 +0200 +++ at-3.1.13/parsetime.y 2016-04-20 17:23:24.140171655 +0200 @@ -476,8 +476,8 @@ parsetime(time_t currtime, int argc, cha exectm = *localtime(&currtime); currtime -= exectm.tm_sec; exectm.tm_sec = 0; - exectm.tm_isdst = -1; memcpy(&currtm,&exectm,sizeof(currtm)); + exectm.tm_isdst = -1; time_only = 0; yearspec = 0; @@ -503,8 +503,8 @@ parsetime(time_t currtime, int argc, cha return 0; if (isgmt) { exectime -= timezone; - if (currtm.tm_isdst && !exectm.tm_isdst) - exectime -= 3600; + if (exectm.tm_isdst) + exectime += 3600; } if (exectime < currtime) panic("refusing to create job destined in the past");