hello all thanks everyone who sent suggestions on wdt problem. oddly, the answer turned out to be something unexpected: saturday morning i discovered that, on wdt timeout, the code didnt return to the org 0x000 statement, but a few lines beneath it. it worked when i put in a org 0x004 retfie combination, plus a couple of portb initialization lines. then the routine that scanned status,3 and status,4 and located the cause would work. i have 22 new gray hairs from learning this. BTW, i know the retfie isnt a good solution and will write a tiny interrupt service, but i was desperate to get the thing going at all. could someone please tell me WHY this works, its possible that a lot of people are fighting wdt interrupts. thanks, alice alice