Ray, much nicer. Three nits: 1) DO FOREVER is usually preferable to DO WHILE 1 for readability.
2) ADDRESS COMMAND is usually preferable to ensure consistent operation: you don't want things breaking because some user has a PIPE EXEC, for example. 3) Avoiding abbreviations is usually preferable for the same reason: you don't want it to break because some user has a Q MODULE on their disk. (If they have a QUERY MODULE on their disk, they're already confused by why it doesn't seem to get invoked -- that's just how the CMS search order works!) None of these are significant but since you're putting it out there as an educational exercise... ...phsiii