I asked a question a little while ago when needing to build a client/server app for a client. Its basically a support service whereby the user will download a client application from the website and then that will connect to a server application running on my customers local PC. I wrote a version which worked beautifully until i managed to release a version which contained a bug which i couldn't locate, and now the service is down. I want to recode the whole project, and I need to take more care this time to avoid problems. I would really like to create both sides so they are threadsafe, and a queuing system is implemented so the server operator may choose a client to speak to, while the other connected clients are in transitional state with text such as: "Please wait while you are transferred to the next available operator". I was wondering if anyone could give me some help, how to setup the sockets so they are thread safe and implement a system whereby i keep track of the clients, and can connect at will to them. I used Indy last time, but I ran into many problems because of the blocking aspect of the ports, sometimes the app would crash out, i feel non-blocking sockets if possible would allow me to handle errors more elegantly.. however, i am totally at your expertise and any similar previous experiences would be great. Code would be the best. Also, anyone know of a good autoupdate system / code.. bearing in mind i need rock solid stability. Thanks for your help.