...a grandi linee, cosa vuoi fare?
un codice, se corretto, non può funzionare "a random" o quando "vuole lui"...
...se così accade, significa che qualcos'altro si "mette in mezzo"...
che errori ti vengono visualizzati a video?