Kann es sein, dass der Loop gar nicht die Ursache ist, sondern das Testprogramm?
Grundsätzlich sollte die Logik so schon funktionieren.