Had to smile.. I was once told by a 'pro' programmer always code for what could happen, not what should happen ,, I don't use 'any' libraries other than string , delay. I came to PIC from HEX machine code CDP1802, Z80 and the like My I2C master send , ACKSTAT fail , just put a red led on ! The MSSP has a few grey areas , I found the slave ACK after the 9th clock has timing issues , K42 eventually was a 'piece of cake' (ish)It should be a pretty rudimentary I2C code with not much in terms of safety,