> > Also, it might be better to re-enable interrupts only if they were > Unfortunately for this app, they must always be enabled Can you arrange for the code to be executed in between timer interrupts ? ie wait until both TMR0 and TMR2 IRQs have just occured before entering the EE routine In your original code you clear WREN after setting WR. All examples I've seen (eg 13.2 in the 16F628 manual amongst others) simply set WREN. Have you tried it with that taken out or putting it somewhere else? However, once WR is set, anything short of a reset won't stop the write so that could be chasing rainbows IMHO I think you should verfiy that program flow really is getting stuck in this routine -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu