This error usually means that you called socket.close()
What surprises me here is - *) The socket is not closed *) The accept handler of initial async_read_some gets the error ("The I/O operation has been aborted because of either a thread exit or an application request") *) After that I am able to wait on same socket and read the data from socket. (The async_read_some is again called form the handler of the "initial async_read_some 's accept handler in a recursive manner) Could there be any other reason for this? This is a multi-threaded application and each socket is created in a new thread, and thread would not exit without completing its execution... Thanks a lot for your hint, Lloyd ______________________________________ Scanned and protected by Email scanner