Arduino won't go to sleep!

Thanks.

Shutting down Timer 0 isn't that hard. And see the init() function for how to get it back. Although saving and restoring TCCR0A and TCCR0B should do it.

eg.

byte oldTCCR0A = TCCR0A;  // save
byte oldTCCR0B = TCCR0B;
TCCR0A = 0;  //  stop timer
TCCR0B = 0;  

// ... sleep

TCCR0A = oldTCCR0A;
TCCR0B = oldTCCR0B;

Untested though.