la funzione mi pare corretta, l'errore potrebbe essere altrove.