I see (silly me just made wrong assumptions instead of looking at the code :(. ) So all this sound good. Why does it not work as the OP expected ? (Other Main Thread events should still be handled while hanging in TThread.WaitFor) -Michael