Potrebbe essere che hai usato varibili globali con lo stesso nome (tieni presente che IE in qualche caso e` non-case-sensitive, cioe` pippo e Pippo per lui sono la stessa variabile).

Inoltre un setTimeout() con tempo = 0 non mi piace.
Potrebbe impedire il funzionamento di altre cose nel browser o anche fuori dal browser.

Puoi mettere un tempo di 1000, o, se la precisione e` fondamentale, puoi ridurre fino a 100; meno non ha senso.