Sì, rimuovendo il listener prima di ridefinire la funzione funziona tutto perfettamente.

Grazie mille.