Mmmm..., I think I'm actually the one that has run the code with and without the delay and evaluated the differences. Those who haven't actually run the code with and without the delay appear to be talking out their *ss. My read on the code is "while" there are characters detected in the serial buffer, the code loops there building the "readString". When no characters are detected in the buffer, the code execution drops out of the while loop and prints the captured readString with a cr/lf attached on the end. When I run the code with no delay, small parts of the origional string are printed with the cr/lf on the end. Unless there is something strange going on, the only way the small parts of the string can be printed is if sometimes when the buffer is being chcked in the while loop, the buffer appears empty. Perhaps somebody can buckle down to the observed behavior and explain it a different way.