so you could put a /yield inside a long loop and let mirc do its business without the loop freezing it until its done? i like this idea. unfortunately then you have problems with consistency, because how do you handle events that get triggered while your loop is still running? queue them? but you still have the problem of the state of logs/windows/buffers changing mid-event. i just dont think this is feasible, because it would require maintaining an entire seperate 'clean' environment for the yielding script to run in, and then somehow reintegrating that environment with the real one when it was done. the only way this might work is to cripple /yield into almost uselessness by not letting mirc do anything that could affect a script during a /yield.