What's wrong with: :SETVAR MYSTR LTRIM(RTRIM(MYSTR)) :WHILE 0 < POS(" ", MYSTR) : SETVAR MYSTR REPL(MYSTR, " ", " ") :ENDWHILE G.