In the seminar, we had some discussions on this. Rick Miller is correct in that when you put it to sleep, the WDT will awake it and RESET it, just like the WDT always does. There is one class of processors (don't remember if it was just the high end) that if it gets an interupt, it will wake up and continue on from where it goes to sleep. I would bet that you never wake up from the interupt, but its always the WDT. Try disabling it when you reburn the part and see if it executes correctly on the interupt. You have to remember that the WDT is pretty fast (and it should be) to protect from going into and executing bad code. If you are sitting around waiting for the button to be pushed, and you are using the WDT, then you should probably put the routine at the reset org, look for the input and then go back to sleep.