It's not really an issue with LabVIEW. It's a question of getting any serial read to get the bytes in the correct order. If the pic is sending out the data continuously, as opposed to sending a measurment only when requested, you don't know when you will start reading the data. It's all asynchronous. To be consistant with the type cast conversion to a U16, you have to always get the bytes in the correct order. At the receiving end, if all that you can do is read a U8 followed by another U8, then sometimes the data will be correct and other times not. Often, what is done at the sending end is append a character such as CR or LF when the data is complete. You will also see some serial instruments put a character such as STX at the beginning. With LabVIEW, the default setting is that a Read will automatically terminate when a LF character is read. The terminate will happen no matter how many bytes have been requested. So, if you append a LF at the end of the second byte you send and tell VISA Read to get two bytes, you might get both, or you might get only 1. If you get both bytes, everything is fine. If the number of bytes returned is only 1, then you missed the first and you have to discard this data. After that though, everything should be in sync.