Alain, Thanks for the comments. I may have to check out the SWAP further, but it looks as though it generates very efficient ML, whereas I thought it just invoked a runtime FN that used RAM vars. Maybe that has changed since I last looked at it. >> I'm pretty sure that this your trim FNs, which use a RAM counter rather >> than a register var, will be slower. > >No doubt, but in fact, I must report this as a 'bug' in the latest >beta. The RAM variable is not required with the official Release 5. > I think you misunderstood me. I was referring to WHILE rTrimStr[rTrimStr] = _" " rTrimStr-- WEND rTrimStr is in RAM, so reading and decrementing it each loop will be significantly slower than decrementing a register var and pluggin the result in at the end. I admit I tried it that way myself, because I like its simplicity, too. 0"0 =J= a y "