Ooops! My conversion data structure and code should look more like this, sorry! union word_byte_u { struct { unsigned char low_byte; /* the order of low_byte and high_byte declaration */ unsigned char high_byte; /* would be compiler specific */ } inner; unsigned long the_word; } u_convert; Then when you wanted to convert two bytes to one word in your code: u_convert.inner.low_byte = low_val; u_convert.inner.high_byte = high_val; answer = u_convert.the_word; -Bill