set multilocks on if not used("buyers") use buyers in 0 endif select buyers cursorsetprop("buffering",5) locate for buyerid = 144 delete * not issuing a tableupdate() at this point causes a problem. append blank replace buyerID with 144, ; lastname with "tst" ? tableupdate(.t., .t.) && the tableupdate returns FALSE skip -1 && we crash here, but the update has alread failed && before this point in timeBut, as you are not doing, it works if you add a tableupdate() after the DELETE, and wrap the entire thing in a transaction. But I would think having a transaction in progress while a user is entering data on a form is not the best course of action.