Maybe the better way to concatenate 2 eight bit values into a 16 bit value would be something like this: union word_byte_u { unsigned char low_byte; /* the order of low_byte and high_byte declaration */ unsigned char high_byte; /* would be compiler specific */ unsigned long the_word; } u_convert; Then when you wanted to convert two bytes to one word in your code: u_convert.low_byte = low_val; u_convert.high_byte = high_val; answer = u_convert.the_word; Classic use of union..... -Bill