That error generally means you are trying to access an object from another thread, and the object isn't thread-safe. Since you havn't shown any code, remember, every thread gets a copy of the parent and the time of thread creation, so try to localize your objects to individual threads, try to create them before the main thread gets created, so you don't get cross-over copying of object code. Also, don't try to access objects across threads. Finally, on win32, why not just use threads, and avoid the pseudo forking?