*fnt = *fnt ^ 0xFF; My approach when the compiler doesn't seem to understand, is to speak loudly and slowly... int y; // Pronounced, "why?" y = *fnt; y = y ^ 0xFF; *fnt = y; (Also known as, "leave nothing to chance") It takes me less time to try that, then it does to ask on a list. If I still don't see it, I 'watch' or print the values. Then I watch it in machine code. I rarely get to that. Usually it's something stupid I did. Occasionally, it's something stupid the compiler did. Things like, I *thought* the ^ was an xor, but wasn't. I gotta see proof. BTW I don't see 'const' being used anywhere, but I thought a const byte * meant not that the pointer couldn't change, just the pointer's own address didn't. But see, there's two more questions, (1) to see if I'm right, and (2) to see if the compiler got it right :) Barry -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist