Note, before you answer, i also posted this on csharphelp to broaden my range of possible help... that link is<BR><BR><BR><BR>This is copied from the post on that board in case you don&#039;t feel like clicking:<BR><BR><BR>Here&#039;s the rundown.. I&#039;m writing a chat to see if i can do it. I have it working minus some minor kinks, and one major kink. I&#039;m looking to get the major kink worked out first. The others i can handle on my own.<BR><BR>When i connect with 2 or three clients (i plan on fixing this but it makes debugging a lot easier), everything is fine, the "buddy list" shows who&#039;s online, no problem. When i double click a name, it opens up a chat window, no problem. however, when i type stuff in and send it "over the wire", the new chat window for the client that i sent the message to pops up no problem, and it shows what i typed, but then the "hourglass" cursor shows up and i can&#039;t type anything in the new window.<BR><BR>The structure that i&#039;m using is a hashtable with the name of the person you are chatting with as the key, and the actual window object as the value. when i type messages to the person that i&#039;m logged on as from the person that i&#039;m logged on as, it works like it should... i.e. if you type in 123 it&#039;ll show your 123 and then it&#039;ll come back from the server and show another 123. i&#039;m wondering if there&#039;s any way (maybe using handles, etc) that i can store the window object that would be more efficient and wouldn&#039;t tie up the window. where i have it is an improvement because i didn&#039;t call "Application.DoEvents()" and the screen popped up but nothing showed up. Here&#039;s some code...<BR><BR>// Notes: My window object is named "SendMessage"<BR>// : Incoming takes a message and parses it and spits it to the screen.<BR><BR>public void HandleMessage(Message msg){<BR>if (!chatWindows.Contains(msg.From)){<BR>SendMessage sm = new SendMessage(msg.To,msg.From,scConnection);<BR>sm.C losed += new EventHandler(HandleWindowClosed);<BR>chatWindows.A dd(msg.From, sm);<BR>sm.Show();<BR>sm.Incoming(msg);<BR>}<BR>el se {<BR>SendMessage sm = (SendMessage)chatWindows[msg.From];<BR>sm.Incoming(msg);<BR>}<BR>}<BR><BR>public void NewWindow(String toName, String fromName){<BR>if (!chatWindows.Contains(toName)){<BR>SendMessage sm = new SendMessage(fromName,toName,scConnection);<BR>sm.C losed += new EventHandler(HandleWindowClosed);<BR>chatWindows.A dd(toName,sm);<BR>sm.Show();<BR>}<BR>}<BR><BR>publ ic void HandleWindowClosed(object sender, System.EventArgs e){<BR>chatWindows.Remove(((SendMessage)sender).Un iqueName);<BR>}<BR><BR><BR>Thanks in advance for your help.<BR><BR>klooj_it