Hi Gang, I'm having a bit of trouble with a program I am writing; I'm trying to wake up from "sleep" with some inline code. The sleep code I am using is simply: clrwdt ; Use WDT for Wake Up sleep nop ; Make sure nothing potentiall unknown is ; Executed after "sleep" When the WDT times out, or the interrupt executes, I seem to go back to Address 0 with T0 PD both set (I verify this through the use of two LEDs which show the value for these two bits). The real purpose of this code is to be have a button press wake up the PIC. I have just enabled the RB0/INT Pin (without setting the "GIE" bit) and this does wake up the PIC from sleep, but also seems to reset the PIC. As well, I tried setting a number of registers to a known value when the PIC is active (before going to sleep) and then checking these values upon PIC Reset (Execution at Address 0). These values seem to be randomized each time the PIC goes to sleep. Does anybody have any idea of what I'm doing wrong? I am expecting (and the Data Sheet confirms this) that upon wake-up, I will continue executing from the current PC (with PC+1 being the next address executed after Sleep), but this is not happening. I'm also confused as to why the file Registers are changing (because they seem to stay static, even if _MCLR is pulled low for some time). Thanx! Myke Do you ever feel like an XT Clone caught in the Pentium Pro Zone?