#DEFINE BADCHARS CHR(128)+CHR(129) #DEFINE ONE SPACE(1) #DEFINE TWO SPACE(2) LOCAL lnFldCnt, lnPtr LOCAL ARRAY laFields[1] SET STEP ON IF USED('Tran0') SELECT Tran0 ELSE USE Tran0 ENDIF lnFldCnt = AFIELDS(laFields) SCAN FOR lnPtr = 1 TO lnFldCnt IF laFields[lnPtr,2] = 'C' OR ; laFields[lnPtr,2] = 'M' = Cleanup(laFields[lnPtr,1]) ENDIF ENDFOR ENDSCAN FUNCTION Cleanup LPARAMETERS taField LOCAL lcString1, lcString2 m.lcString1 = EVALUATE(taField) m.lcString2 = CHRTRAN(m.lcString1,BADCHARS,'') DO WHILE TWO $ m.lcString2 m.lcString2 = STRTRAN(m.lcString2,TWO,ONE) ENDDO IF LEN(ALLTRIM(m.lcString2)) < LEN(ALLTRIM(m.lcString1)) REPLACE (taField) WITH m.lcString2 ENDIF RETURNHope this is a little more helpful!