so che quando c'è di mezzo un evento casuale... c'è da impazzire. ma io ci provo.

ho una chat, la funzione di richiamo delle azioni è questa:

codice:
function prenditesto(ultimoid) {
 	var myRequest = null;      
    var r = Math.random();
    myRequest = CreateXmlHttpReq();
    myRequest.open("GET","getchatdata2.php?lastID="+ultimoid+"&rand="+escape(r));
    
       myRequest.onreadystatechange=function(){

		if (myRequest.readyState==4 || myRequest.readyState=="complete"){
                if (myRequest.status == 200){
        			e = document.getElementById("outputList");
        			azioni = myRequest.responseText.split('-_-_-');
      	 				 if (azioni.length > 2) {
	    					for(i=0;i < (azioni.length-1);i=i+2) { 
	    					e.innerHTML += azioni[i+1]; 
	    					}
	    				last = azioni[azioni.length-3];
	    				e.scrollTop = 100000000;
						}		
				} else {
				document.getElementById(nomediv).innerHTML="ERRORE "+myRequest.status;
				}
		} // else document.getElementById(nomediv).innerHTML=myRequest.readyState; // debug
	}
    myRequest.send(null);
    setTimeout('prenditesto(last);',10000);
}
l'istanza è sempre la solita, funzionante. cosa succede?
il PHP restituisce una stringa del genere:

IDmessaggio-_-_-messaggioveroeproprio-_-_-

moltiplicato per tutti i messaggi compresi in un certo lasso di tempo, con id maggiore di ecc ecc
alla fine c'è un end
la funzione dopo aver splittato, tramite il ciclo for mi scrive i messaggi in un div (solo il messaggio, non il IDmessaggio), e per ultima prende l'ultimo id e lo passa alla variabile, in modo che al prossimo avvio della funzione (dopo 10 secondi) , il ocntrollo avvenga da quello, senza prenderli ancora tutti.

ecco, il PROBLEMA è che casualmente capita che un messaggio appena postato, venga duplicato. Sul db NON è duplicato, viene duplicata solo la visualizzazione. Anche triplicato, a volte. E non capisco come sia possibile.
il fatto che avvenga random può essere colpa della lentezza del sito nel rispondere alla richiesta ajax? ma anche se fosse... perché lo duplica??

grazie e scusate l'ignoranza