Probiers mal hiermit, hatte das Problem auch schon, der Code legt den AssemblerCode der den Watchdog deaktiviert in die .init Sektion des Programms, das ist dann das allererste, was das Programm tut. Das Problem ist, das mit dem Reset des Controllers (durch den WDT) auch das Control-Register des WDT gelöscht wird und dieser nun auf 15ms eingestellt ist, das reicht manchmal nicht...

[/code]
void wdt_init(void) __attribute__((naked)) __attribute__((section(".init1")));

void wdt_init(void)
{
MCUSR = 0;
wdt_disable();
DDRA = (1<<PA0);
PORTA &= ~(1<<PA0);

return;
}
[/code]

sollte das Problem beheben, wo das im Programmcode landet ist egal, es wird so oder so ausgeführt