Here is my setup: PIC14000 acting as I2C master sending 5 bytes to a PIC16C63 acting as I2C slave. PIC16C63 buffers the I2C data and sends it to a PC via RS-232. I can look on a scope and see the 5 I2C bytes followed by the 5 (plus checksum, total 6) bytes on the RS232 line. One of the bytes from the PIC14000 indicates how many data bytes are in the message. There is a three byte header and two data bytes for this test. I know the protocol of the I2C doesn't need a "number of bytes" parameter; that info is used by the RS232 portion of the 16C63, so it has to stay. Everything works fine until I place my hand between my 100W halogen desk lamp and the PIC14000. The PIC14000 still only sends 5 bytes but the PIC16C63 starts sending lots of data (lots and lots...). Presumably the 14000 is telling the 16C63 that there are more than 2 data bytes. This is strange, but what is also stranger is that it only works with the light _on_. When I block the light or turn it off the PIC losses its mind. This doesn't bode well for a dark, windowless OTP 14000. BTW, the 16C63 doesn't have any problems (that I can detect). The first think I thought of is the internal 4Mhz clock of the 14000 is fluctuating enough that the I2C master clock and data timing are moving outside the limits. That isn't happening. I confirmed it on the scope. Any ideas? Will the OTP parts exhibit the same behavior? -tim drury