I don't see any problem with "one handing back control, screwing up data". I've been using threads for a short while, but all the time I have is one messes up, it never effects the 'parent' thread. All it does it kills itself. Anyways, what you you screw up that you can't alreayd do currently? The only difference would be mirc would continue to run, instead of stall and kill connections to servers. Say if your called threwad went into an infinite loop. mIRC would continue to run fun, and the thread itself would be th eonly thing to 'die'.