--- /dev/null
+diff -ruN ../at-3.1.8.orig/parsetime.y ./parsetime.y
+--- ../at-3.1.8.orig/parsetime.y Mon Jan 14 17:59:09 2002
++++ ./parsetime.y Mon Jan 14 18:01:22 2002
+@@ -193,7 +193,6 @@
+ exectm.tm_year -= 1900;
+ }
+
+- free ($1);
+ }
+ else {
+ sscanf($1, "%d", &exectm.tm_hour);
+@@ -369,6 +368,8 @@
+ time_only = 0;
+ if (yyparse() == 0) {
+ exectime = mktime(&exectm);
++ if (exectime == (time_t)-1)
++ return 0;
+ if (isgmt) {
+ exectime += timezone;
+ if (daylight) {
+@@ -432,6 +433,8 @@
+ {
+ time_t timeval;
+ timeval = mktime(tm);
++ if (timeval == (time_t)-1)
++ timeval = (time_t)0;
+ timeval += numsec;
+ *tm = *localtime(&timeval);
+ }