<pre>function filterText str  -- trick to prevent recursive replace, just for safety:  put replace( str, "&", numtochar(1), true ) into str  put replace( str, numtochar(1), "&amp;", true ) into str  -- the rest works normally.  put replace( str, "", "&auml;", true ) into str  put replace( str, "", "&Auml;", true ) into str  put replace( str, "", "&ouml;", true ) into str  put replace( str, "", "&Ouml;", true ) into str  put replace( str, "", "&uuml;", true ) into str  put replace( str, "", "&Uuml;", true ) into str  put replace( str, "", "&szlig;", true ) into str  put replace( str, "<", "&lt;", true ) into str  put replace( str, ">", "&gt;", true ) into str  put replace( str, "", "&aacute;", true ) into str  put replace( str, "", "&agrave;", true ) into str  put replace( str, "e", "&eacute;", true ) into str  put replace( str, "e", "&egrave;", true ) into str  put replace( str, "", "&Aacute;", true ) into str  put replace( str, "", "&Agrave;", true ) into str  put replace( str, "e", "&eacute;", true ) into str  put replace( str, "e", "&egrave;", true ) into str  put replace( str, quote, "&quot;", true ) into str  put replace( str, "", "&quot;", true ) into str  put replace( str, "", "&quot;", true ) into str  put replace( str, "", "&quot;", true ) into str  put replace( str, return, "<BR>", true ) into str  return strend filterText</pre>