Check and see if your rcie is being disabled. Here is a code snip I use for the same thing. ;enable serial receive, part shows occasional disabling of receive SETB RP0 ;set bank 1 setb rcie ;on RCIF CLRB RP0 ;set bank 0 jb ferr,rsr_1 ;reset rcsta on framming error jb oerr,rsr_1 ;reset rcsta on overrun error skip ;make sure cren is always on rsr_1 clrb cren setb cren Take care -Jim >I use a PC to communicate with a 16C74 via RS-232. >Sometimes after connecting the cable a get >a framing error (FERR-bit2 of RCSTA chip register ). >When this happens, no more data is received. >Both RX and TX lines are high (on the chip). >The manual states that FERR may be cleared by reading >register RCREG. The only way I have been able to clear >the FERR bit, is to reset the processor. >I use the PICMASTER emulator and the following C-code >is used for error handling: > > if (FERR || OERR) { > CREN = 0; /* Clear error */ > CREN = 1; /* Enable reception */ > temp = RCREG; > }