Claramente ese código tiene un error de lógica, y solo por que
u_goldman lo advirtió sino era digno de ser insultado (

)
Mi sugerencia es que hagas una prueba de escritorio, detectes el error y lo corrijas, la verdad es que cuando no se ven ganas de la otra parte de hacer las cosas, no motiva a resolverles el problema.