When you TRIS a pin as input, then read it, does that not put a logic 1 in the PORT register if the pin is pulled up? If so, when the pin is TRIS'd to output again, it will be outputting logic 1.?? Therefore, care should be taken when doing I2C in this method to make sure that the pin is set to output 0 whenever you tris back to an output. Regards, Kevin. -- 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