Re posting the code with SPACE() i/o quotes - thanks to Michael Dougherty for pointing out how UT handles double spaces.
PROCEDURE cleanmemo
LPARAMETERS memotext
LOCAL newtext
m.newtext = CHRTRAN(m.memotext, CHR(13), SPACE(1))
m.newtext = CHRTRAN(m.newtext, CHR(10), SPACE(1))
m.newtext = ALLTRIM(STRTRAN(m.newtext, SPACE(2), SPACE(1)))
IF .NOT. (m.newtext == m.memotext)
m.newtext = cleanmemo(m.newtext)
ENDIF
RETURN m.newtext
BTW: Can someone explain to me how to use the PRE coding tags explained in item 5 of basic notes of the rules of conduct?