Hi Jay.
but I also can't accept the results of GetNextModified if changes on the form really were not done. Is there a simple solution to this? Or maybe just one I can understand? <s>I thought I just gave you the solution. When GETNEXTMODIFIED() returns a non-zero value, if you used SETFLDSTATE() to reset the field state fglag, you need to use GETFLDSTATE() to see if the changes are "real".
Code would look like this (off the top of my head and untested):
LPARAMETERS tcAlias
LOCAL lnModified, llIsChanged, lcFldState
lnModified = GETNEXTMODIFIED( 0, tcALias )
DO WHILE lnModified # 0
GO lnModified IN ( tcAlias )
lcFldState = NVL( GETFLDSTATE( -1, tcALias ), '' )
IF NOT EMPTY( CHRTRAN( lcFldState, '13', '' ) )
llIsChanged = .T.
EXIT
ENDIF
ENDDO
RETURN llIsChanged