I am receiving data from a socket, which is on its own thread, it handles everything, and then passes the data to a routine on the main form, which calls ShowDialog(Me) when the first byte of data arrives. THe problem is, the ShowDialog, doesnt work. Its acting like i just used Show instead of ShowDialog, i can still work the form behind it just fine, which is bad. Is there anyway i can fix this??