Hi Chuck,
Is this FPD/FPW or VFP? If it's FPD/FPW, Jim's solution is along the lines you're looking for. I would add, however, that m.obt value be set to 0, and the WAIT WINDOW and following code executed only when m.obt > 0.
If it's a solution in VFP or being ported to it, and you're using buffering, I'd suggest that you use the GETFLDSTATE() function with -1 as the parameter. When a new record is appended, the value returned by the function will be a string of 3's, indicating the it's an appended record and the initial values have not been modified. The length of this string will be equal to the number of fields in the table plus 1. The first character represents the whether or not the deleted status has changed. The remaining values map directly to the fields in the table. The character in second position is the first field, the third character is the second field etc.
When the user modifies the value, the character corresponding to the field changes to 4. The problem here is that if the empties the field after making the modification, you've got invalid data, but GETFLDSTATE() will show it as modified. This can be checked in the Valid Event of the control, however, and appropriate steps (such as disabling the save button) can be taken there.
George
Ubi caritas et amor, deus ibi est