Yes I know this looks clumsy. This is a cut and paste from a trace using an ICE with a PCM16XKO module for a PIC16F876 (Line 5 does a rotate left f, and active is a 01) rlf active,f (line 6 calls a function that uses active. which is now 03) 1 042B 0AB2 incf --- -- --- -- 00000011 000CD7ED2C 2 042C 0BB2 decfsz 0x32 p_data4 01 p_data4 02 0000011 000CD7ED2D 3 042D 2C33 goto train_not_zero p_data4 02 p_data4 01 0000011 000CD7ED2E 4 042E 2C2F (Forced --- -- --- -- 0000011 000CD7ED2F 5 0433 0DB4 train_not_zero rlf --- -- --- -- 00000011 000CD7ED30 6 0434 23FA call set_list ACTIVE 01 ACTIVE 03 00000011 000CD7ED31 7 0435 245A (Forced --- -- --- -- 00000011 000CD7ED32 8 03FA 3004 set_list movlw --- -- --- -- 00000011 000CD7ED33 9 03FB 00AE movwf --- -- W 04 00000011 000CD7ED34 10 03FC 3029 movlw 0x29 p_count 05 p_count 04 00000011 000CD7ED35 Later I do the exact same rotate left and it changes to 02 which is what it is should be. any ideas? Gordon Varney