entonces el problema es que la url tenga caracteres NO escapados, debes revisar eso, has un alert(
modurl); para ver que tiene, lo mas probable es que tengas que usar
escape en la variable
vars o en ciertas partes
http://www.w3schools.com/jsref/jsref_escape.asp
onreadystatechange siempre va a ser llamada dependiendo de el resultado del objeto xmlhttprequest, es por ello que se filtra readystate y status siempre