a memoria mi sembra che manci un async nel primo ramo dell'if.

codice:
...
 xmlDocument.onload=carica;
 xmlDocument.async=false;
...
purtroppo non ho il codice sottomano, ma mi sembra sia questo.