Hi Win, > I'm yet a bit further. I can send messages now , but i don't arrive to > be signaled when they arrive. I'm not sure I understand. Do you mean that SignalOwner() is not called when a Message arrives from the server=3F What Messages are you expecting to arrive from the server=3F > I have used a descendant of > messagetransceiverthread and I have overloaded signalowner(). > But when a message arrives in the function down here, the function > SignalInternalThread is chosen and not SignalOwner. SignalInternalThread() is called by SendMessageToInternalThread(), so that the network I/O thread will wake up and send your outgoing Message(s) to the server. That is normal behaviour for Messages that your program is sending to the server. SignalOwner() is only called when a Message is received from the server by the network I/O thread. The network I/O thread posts the incoming Message to a Queue, and then calls SignalOwner() to notify your main() thread that the Message is available for pickup. That is the expected behaviour for Messages that your program is receiving from the server. > How can I fix this =3F It's not clear to me what is broken, if anything. Can you email me a short example program that you think should work, but doesn't=3F Then I will understand better what the situation is. -Jeremy ps An easy way to test sending and receiving, using a single client, is to have your client program send a PR=5FCOMMAND=5FGETPARAMETERS Message to the server. The server will immediately respond with a PR=5FRESULT=5FPARAMETERS reply Message, so you should see SignalOwner() get called a few moments after you send the PR=5FCOMMAND=5FGETPARAMETERs Message.