Si in effetti a quanto pare quella funzione è valida solo per righe "modificate"; con quella che mi hai indicato funziona correttamente...

Il resto del codice è corretto secondo te o manca ancora qualcosa?