:: I think the word "constant" may be a clue here..... I thought that as well, but this doesn't work either, that is not a declared constant. *fnt = 0x7E; Although this is going into a 24F series, I have to use the const as I'm trialling the program in a 16F877A. This doesn't explain why uC 'C' works with this code but FED_C doesn't. Try *fnt ^= 0xFF Nope ignores that as well. In the assembler listing, the inverted number is put into the INDF register and is just left there. ;~ Line : 00057 (*fnt)^= 0xFF; bcf STATUS,IRP movlw 39 call LoadWD movfw ACC bcf STATUS,IRP btfsc ACC+1,0 bsf STATUS,IRP movwf FSR movlw 255 xorwf 0 ;~ Line : 00058 } SETPCLATH GLCD_disp_char,0,0 L000153: ;~ Line : 00059 ;~ Line : 00060 for (indx = Time for bed, look at it fresh in the morning. Colin -- cdb, colin@btech-online.co.uk on 9/26/2009 Web presence: www.btech-online.co.uk Hosted by: www.1and1.co.uk/?k_id=7988359 -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist