I was doing some debugging of USART code under ICD2 and ran across an anomaly I thought you may be interested in. Let's say you have a breakpoint that hits after RCIF is set but before the code that checks for RCIF=1 executes. Because the ICD2 reads all the registers to display at the breakpoint - including RCREG - RCIF will be cleared under the covers. If you resume execution, your code that checks RCIF=1 and then reads RCREG will be skipped and the next character will not be received! At the breakpoint, if you look at register PIR1 you can see that RCIF is set. However, if you single step after the breakpoint you will see that RCIF "mysteriously" gets cleared. This is because the registers are re-read by ICD2 and now RCIF is really clear. This makes sense if you think about it, but I needed to contact Microchip support to set me straight. They said if you want to avoid this problem, you have to ensure your breakpoint hits after the code that reads RCIF runs. By the way, they said that SSPBUF is treated similarly, and that ICE 2000 would behave this way as well (they didn't mention ICD "1", but I would imagine the same applies). Rick __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics