And all that snippet is doing is looping thru the global IB, checking some conditions and setting up a temporary global. It is pretty easy to read when you know what the commands are: K kill; S set; F for; Q quit; I if. I don't know what all the fuss is about. MUMPS is a pretty easy language to pick up. For instance the line '.. Q:'$D(^IB(IBX,0)) S IBZ=^(0)' just means go on to the next iteration if there is no data at the node ^IB(IBX,0) else set IBZ equal to the data held at that node. Yep, $D is used to test for existence. I guess that's enough MUMPS for today.