diff -urpw rexml_3.1.7/src/rexml/encodings/ICONV.rb rexml_3.1.7/src/rexml/encodings/ICONV.rb
--- rexml_3.1.7/src/rexml/encodings/ICONV.rb	2007-07-25 07:35:57.000000000 -0400
+++ rexml_3.1.7/src/rexml/encodings/ICONV.rb	2007-08-03 16:16:23.000000000 -0400
@@ -4,11 +4,13 @@ raise LoadError unless defined? Iconv
 module REXML
   module Encoding
     def decode_iconv(str)
-      Iconv.conv(UTF_8, @encoding, str)
+      #Decode, ignoring illegal chars
+      Iconv.conv("UTF-8//Ignore", @encoding, str)
     end
 
     def encode_iconv(content)
-      Iconv.conv(@encoding, UTF_8, content)
+      #Encode , ignoring illegal chars
+      Iconv.conv(@encoding, "UTF-8//Ignore", content)
     end
 
     register("ICONV") do |obj|
diff -urpw rexml_3.1.7/src/rexml/encodings/UTF-8.rb rexml_3.1.7/src/rexml/encodings/UTF-8.rb
--- rexml_3.1.7/src/rexml/encodings/UTF-8.rb	2007-07-25 07:35:57.000000000 -0400
+++ rexml_3.1.7/src/rexml/encodings/UTF-8.rb	2007-08-03 16:17:50.000000000 -0400
@@ -1,11 +1,15 @@
 module REXML
   module Encoding
     def encode_utf8 content
-      content
+#~      content
+      #Encode, strip illegal chars
+      Iconv.conv('UTF-8//Ignore', 'UTF-8' , content + ' ')[0..-2]
     end
 
     def decode_utf8(str)
-      str
+      #Decode, strip illegal chars
+#~      str
+      Iconv.conv('UTF-8//Ignore', 'UTF-8' , str + ' ' )[0..-2]
     end
 
     register(UTF_8) do |obj|
