The PICLIST archives have a fairly large collection of similar questions in them. Basically, what you need to do is set PCLATH back to the local value after the return, but that implies knowing where you are to start with. Since the hardware stack is 13-bits wide, you don't need to reset PCLATH before returning. I'm a little confused about why Olin is mentioning storing the STATUS register, since it has no bearing on the PC. That's only relevant for setting the register pages, not the program pages. If you just make a practice of setting PCLATH before any instruction that operates on the PCL, you shouldn't have a problem. Maybe I've missed something, but that's the way I see it. --Brendan -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads