Ok, ma da quanto scrive non si capisce, è solo intuibile.
Metti che il resto dello script che ha non fa ciò che giustamente dici tu, ed ecco che non funziona.
Senza vedere il codice completo di ciò che partecipa a questa funzione è indecidibile cosa ci sia che non va.