diff -up at-3.1.18/parsetime.y.dst at-3.1.18/parsetime.y --- at-3.1.18/parsetime.y.dst 2015-12-06 16:45:10.000000000 +0100 +++ at-3.1.18/parsetime.y 2015-07-01 13:53:14.088881926 +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");