1. ok.
2. yes
3. ok
4. If you are calling your procedure (say, bob()) then bob should only return when it is finished. Typically when it either goes through the .PageReceived method, or the .ErrorTrap method it posts an Event:Closewindow.
Now if you are doing a CALL(bob,20000) - that's a whole different ballgame.
so how are you calling Bob?
cheers
Bruce