diff -Nru linux/arch/mips/ddb5xxx/common/rtc_ds1386.c.orig linux/arch/mips/ddb5xxx/common/rtc_ds1386.c --- linux/arch/mips/ddb5xxx/common/rtc_ds1386.c.orig Fri Oct 12 15:16:07 2001 +++ linux/arch/mips/ddb5xxx/common/rtc_ds1386.c Sat Nov 10 23:00:38 2001 @@ -101,7 +101,7 @@ } temp = READ_RTC(0x9); - month = BIN_TO_BCD(tm.tm_mon); + month = BIN_TO_BCD(tm.tm_mon+1); /* tm_mon starts from 0 to 11 */ if (month != (temp & 0x1f)) { WRITE_RTC( 0x9, (month & 0x1f) | (temp & ~0x1f) ); diff -Nru linux/arch/mips/kernel/time.c.orig linux/arch/mips/kernel/time.c --- linux/arch/mips/kernel/time.c.orig Sat Nov 10 18:48:58 2001 +++ linux/arch/mips/kernel/time.c Sat Nov 10 22:37:06 2001 @@ -496,7 +496,7 @@ for (i = 1; day >= days_in_month(i); i++) day -= days_in_month(i); days_in_month(FEBRUARY) = 28; - tm->tm_mon = i; + tm->tm_mon = i-1; /* tm_mon starts from 0 to 11 */ /* Days are what is left over (+1) from all that. */ tm->tm_mday = day + 1;