Hi James, James Newton wrote: > > volatile > BYTE Stat = STAT_NO; // status > > volatile > BYTE Timer1, Timer2; // 10mS decrement timer Put "extern" on the variables defined in .h files with no initialization. And redefine them again in the .c file with the initialization. So the above should be in the .h: extern volatile BYTE Stat; // status extern volatile BYTE Timer1, Timer2; // 10mS decrement timer And in the .c file: extern volatile BYTE Stat = STAT_NO; // status extern volatile BYTE Timer1, Timer2; // 10mS decrement timer You should also put a compiler switch in the .h file to avoid double declaration. Example: --main.h-- #ifndef _MAIN_H_ #define _MAIN_H_ . . ..code here.. . #endif /*_MAIN_H_*/ regards, Reggie -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist