Hi Nicholas, Another question: is your clock or crystal driving the PIC really 16 MHz as your comments indicate? I realize that your comment says 16 MHz, but the reason I'm asking, is sometimes code comments do not always reflect actual hardware details -- especially if the hardware is in a state of flux. In order to operate according to the PIC18F452's I2C engine spec, the PIC18F452's Fosc must be 10 MHz minimum to operate at an I2C SCL frequency of 400 KHz. If you do have a 16 MHz clock or crystal, then you're golden. :) The other thing Nicholas: Can you supply the actual C source code behind those C18 functions? I hate not being able to see what's behind the scenes. I'm tempted to say you might need to use the IdleI2C() function between your I2C events, but I have never used the C18 compiler or its I2C function library. Maybe those C18 I2C functions embed use the IdleI2C() within them -- I don't know. There does not seem to be much documentation in the PDF link you listed regarding the I2C functions so I share your pain. If you could the questions I posed here (and from my previous post) that would be great. Best regards, Ken Pergola -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.