The most likely reason for a GPF when manually starting a thread, is that you're not setting some threaded global variable correctly.
For example;
In my app I set the Filename variables, and glo:owner connection variables in the WebHandler, ProcessLink method, before the parent call. So anytime the Server starts a new thread, all the threaded global strings are ready to be used.
If however I START a thread manually, then I need to remember to set these variables, or that thread will crash when it tries to access a file.
Cheers
Bruce