Where is it locking up? If you break into it with the debugger and get a callstack of what's going on when it locks up this would be a big help. Note - When you write a multithreaded program you have to start worrying about the thread safety of every function you call - I suspect this may be your problem. Steve