if ( I2CStart() && I2CTransmit(fullAddr) && I2CGetAck() && I2CTransmit(instruction) && I2CGetAck() && I2CStop() ) Is C *REQUIRED* to EXECUTE such expressions in order and short-circuit the evaluation as soon as possible? If so, then of course it could be: return( I2CStart() && I2CTransmit(fullAddr) && I2CGetAck() && I2CTransmit(instruction) && I2CGetAck() && I2CStop() ) BillW -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu