Baco del debugger di VS.NET (?)
In riguardo alla segnalazione di Fabio ho fatto del debugging e ho rilevato che il valore della variabile i2 al termine del primo ciclio è 5 (non come segnalato da lui: zero)
Pare quindi che il problema sia SOLO relativo al debugger di VS.NET! Fortunatamente il codice viene eseguito correttamente!