I would use the following in order of preference: 1: The RESET instruction, if present 2: Allowing the watchdog to timeout, if possible 3: Some sort of hardware means of forcing an MCLR reset 4: Carefully resetting all peripherals, followed by GOTO 0 NOTES: Option 3 requires hardware support, and getting that right is perhaps not trivial. Option 4 is not for the faint of heart, and is *not* recommended unless there is absolutely no other choice! -- Bob Ammerman RAm Systems -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist