if (!strncmp((char *)(PillDBPtr - (DATA1 & 0x0F)-(DATA1 >> 4)), drec.bcdRXCheck, (DATA1 >> 4))) Could anyone suggest why the above statement would evaluate to true on the following conditions. PillDBPtr = 0x201F DATA1 = 0x66 drec.bcdRXCheck => 0x00, 0x04, 0x50, 0x51, 0x36, 0x01 Data Locations starting at 0x2010: 00 43 28 00 00 00 00 00 00 30 04 51 36 10 50 66 What appears to be happening is that the equation evaluates the first byte, 0x2003 and bdrec.bcdRXCheck, and discontinues the evalution. Since the first bytes equate it evaluates to true. If I change this byte in either location if evaluates to false. -Please help.