That's what I thought when I read @camsysca posting.
Best thing would be if you have a start-marker and and end-marker.
With start/end-marker you can start reading at any byte even in the middle of a message.
Any truncated message will be read-out from the buffer and will be thrown away.
Then if the next message arrives and really starts with the constant start-marker correct receiving begins and ends if the end-marker is read.
There is a tutorial about that written by robin2
best regards Stefan