diff -Nur xmms-stats/Makefile xmms-stats.acid/Makefile
--- xmms-stats/Makefile	2004-06-26 16:50:44.000000000 +0200
+++ xmms-stats.acid/Makefile	2004-06-27 00:47:52.000000000 +0200
@@ -13,7 +13,7 @@
 TARGET = libstats.so
 
 
-all: xmms-stats
+all: $(TARGET)
 
 clean:
 	rm -f $(TARGET) *.o *~
@@ -22,7 +22,7 @@
 	install -d $(INSTALLPATH)
 	install $(TARGET) $(INSTALLPATH)
 
-xmms-stats: $(OBJS)
+$(TARGET): $(OBJS)
 	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $(TARGET) 
 
 
diff -Nur xmms-stats/xmlwriter.c xmms-stats.acid/xmlwriter.c
--- xmms-stats/xmlwriter.c	2004-06-26 16:50:46.000000000 +0200
+++ xmms-stats.acid/xmlwriter.c	2004-06-27 00:43:50.000000000 +0200
@@ -54,32 +54,39 @@
 void replace_char_xml(char ** string)
 {
 #define NB_RAW 1
-	char raw[NB_RAW] = { '&'};
+	char raw[NB_RAW] = { '&' };
 	char *xmlstr[NB_RAW] = { "&amp;" };
 	
-	char *a, *tmp, *buf;
-	int i, j;
+	char *found, *str_begin, *buf, *begin_search;
+	int i, j, xmlstr_size, str_size;
 
 	for(j = 0; j < NB_RAW; j++)
 	{
-		if((a = strchr(string[0], raw[j])))
+		xmlstr_size = strlen(xmlstr[j]);
+		begin_search = string[0];
+		
+		while((found = strchr(begin_search, raw[j])))
 		{
+			str_size = strlen(string[0]);
 			buf = strdup(string[0]);
-			tmp = string[0];
+			str_begin = string[0];
 
-			/* Grow old string */
-			string[0] = (char *) malloc(sizeof(char) * (strlen(string[0]) + strlen(xmlstr[j])));
+			/* Grow up old string of xml_size */
+			string[0] = (char *)
+				malloc(sizeof(char) * (str_size + xmlstr_size));
 			strcpy(string[0], buf);
 			
-			/* Move of 4 chars right old chain after '&'*/
-			for(i = (strlen(buf) + (strlen(xmlstr[j]) - 1)); i >= ((tmp + strlen(buf) - a) - 1); i--)
-				string[0][i] = buf[i - (strlen(xmlstr[j]) - 1)];
+			/* Move X chars right old chain after the raw char */
+			for(i = str_size + xmlstr_size - 1;
+					i >= found - str_begin + 1;
+					i--)
+				string[0][i] = buf[i - (xmlstr_size - 1)];
 			
-			for(i = 0; i < strlen(xmlstr[j]); i++)
-				string[0][(a - tmp + i)] = xmlstr[j][i];
+			for(i = (found - str_begin); i <  (found - str_begin) + xmlstr_size; i++)
+				string[0][i] = xmlstr[j][i - (found - str_begin)];
 			
-			/* Final space */
-			string[0][(a - tmp) + i] = ' ';
+			begin_search = string[0] + (found - str_begin) + xmlstr_size;
+			free(buf);
 		}
 	}
 }
