rack, I see one difference in the TCPListener from your code compared to mine, you start the listener in your DoListen Sub, I do that in the Btton_Click routine where the thrListen is also started.Although the outcome is the same (messages from the client don'T come thru) your code is forcing my cpu to be at 100% all the time, while is only doing that until the client connected!