FOR m.nFld = 1 TO FCOUNT() && <----- is where it returns 2 and I know the table only has 1 field IF TYPE(FIELD(m.nFld)) = "G" &&skip for General fields LOOP ENDIF IF OLDVAL(FIELD(m.nFld)) # CURVAL(FIELD(m.nFld)) m.lHadMessage = .T. IF MESSAGEBOX(E_DIRTYREC_LOC,4+48) = MSGBOX_YES