I'm writing some I2C code for someone using the hardware MSSP on a 18F242. The following code works, but I'm not sure that it should. Break should only short circuit a loop, in error I've coded it into an IF statement that is inside a while loop - so whilst Break works for a while loop, should it work when in an IF statement inside a loop? Code below (note formatting may get mangled). void I2C_hwStop() { BYTE timeout = 50; SSPCON2 = SSPCON2 | (1<