The best (portable and avoiding "Windowish" stuff) way to notify the main thread about the state of a thread (so that the main thread can e.g. advance a progress bar without temporarily stall the worker thread is "Application. QueuAsyncCall()". Same fires a procedure in the main thread and provides it with a parameter. -Michael