>>Preferences?
>
>OLDVAL() CURVAL() comparison in a oBizObj.CheckBuffer(), triggered from PreSaveHook().
>
>But I'm open for better ideas here too, my approach has always felt like a brute force kind of thing & not very elegant. Plus too it doesnt play nicely when underlying table structures are modified, and if I hit a problem it still bites me in the save and I still scratch my head for awhile before pin pointing a problem in my CheckBuffer() code :(
Are you checking each field state individually? I was thinking maybe using AFIELDS() and just loop through all the fields to check it's state - then it wouldn't matter if the underlying fields changed.