lcMemo = chrtran(myMemo,chr(13)+chr(10),chr(10)) && CRLF to LF do while occurs(chr(10)+chr(10),lcMemo)>0 && While multipl LF exists lcMemo = strtran(lcMemo,chr(10)+chr(10),chr(10)) && Half the LFs enddo lcMemo = left(lcMemo,len(lcMemo)-iif(right(lcMemo,1)=chr(10),1,0))This would reduce multiple consequtive CRLF to one. You could have this code slightly modified in either lostfocus of editbox (so would do it as editing done) or as a UDF just to call from a report (not a problem IMHO since in reports real botleneck is printer which is slower than fox code). And since code uses halving system which means with say 1024 CRs loop would take 10 passes I don't think you'd need faster routines like C FLLs.