dc42:
It sounds as though the wdt_disable call isn't working and the wdt_enable call is setting the wrong timeout. This is the code I use to disable the watchdog:// Turn off watchdog timer
cli();
wdt_reset();
MCUSR = 0; // clear watchdog reset flag
WDTCSR |= (1 << WDCE) | (1 << WDE);
WDTCSR = 0x00;
sei();
Thanks you so much, it works like a charm.