--- /dev/null
+--- elm2.5.2/src/expires.c.old Fri Sep 29 12:42:07 1995
++++ elm2.5.2/src/expires.c Sat Jan 1 09:31:32 2000
+@@ -46,6 +46,7 @@
+ time_t thetime;
+ char word1[WLEN], word2[WLEN], word3[WLEN], word4[WLEN], word5[WLEN];
+ int month = 0, day = 0, year = 0, hour = 0, minute = 0, items;
++ int bad_year = FALSE;
+ #ifndef _POSIX_SOURCE
+ struct tm *localtime();
+ time_t time();
+@@ -87,6 +88,7 @@
+ day = atoi(word1);
+ month = month_number(word2);
+ year = atoi(word3);
++ bad_year = !isdigit( *word3);
+ sscanf(word4, "%02d%*c%02d",
+ &hour, &minute);
+ }
+@@ -100,25 +102,35 @@
+ month = month_number(word3);
+ day = atoi(word2);
+ year = atoi(word4);
++ bad_year = !isdigit( *word4);
+ } else { /* form #1 */
+ month = month_number(word2);
+ day = atoi(word3);
+ year = atoi(word4);
++ bad_year = !isdigit( *word4);
+ }
+ }
+ else if (! isdigit(word1[0])) { /* form #3 */
+ month = month_number(word1);
+ day = atoi(word2);
+ year = atoi(word3);
++ bad_year = !isdigit( *word3);
+ }
+ else { /* form #4 */
+ day = atoi(word1);
+ month = month_number(word2);
+ year = atoi(word3);
++ bad_year = !isdigit( *word3);
+ }
+
+- if (day == 0 || year == 0)
++ if (day == 0 || bad_year)
+ return; /* we didn't get a valid date */
++
++ if ( year < 69)
++ year += 100;
++
++ if ( year >= 1900)
++ year -= 1900;
+
+ /** next let's get the current time and date, please **/
+
+--- elm2.5.2/src/date.c.old Mon Apr 5 08:03:12 1999
++++ elm2.5.2/src/date.c Sat Jan 1 09:31:24 2000
+@@ -98,7 +98,7 @@
+
+ /* now, finally, build the actual date string */
+ the_time->tm_mday %= 32,
+- strftime(buffer, SLEN, "%a, %d %B %y", the_time);
++ strftime(buffer, SLEN, "%a, %d %B %Y", the_time);
+ }
+
+ int