diff -r 7e959d397a35 src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c	Mon Aug 23 15:38:26 2010 +0100
+++ b/src/plugins/fts-solr/fts-backend-solr.c	Mon Aug 23 11:36:58 2010 -0700
@@ -122,9 +122,9 @@
 				/* make sure the character is valid for XML
 				   so we don't get XML parser errors */
 				unsigned int char_len =
-					uni_utf8_char_bytes(data[0]);
+					uni_utf8_char_bytes(data[i]);
 				if (i + char_len <= len &&
-				    uni_utf8_get_char_n(data, len, &chr) == 0 &&
+				    uni_utf8_get_char_n(data + i, char_len, &chr) == 1 &&
 				    is_valid_xml_char(chr))
 					str_append_n(dest, data + i, char_len);
 				else {
@@ -137,7 +137,6 @@
 			}
 			break;
 		}
-		i += uni_utf8_char_bytes(data[0]);
 	}
 }
 
