>I agree with Jim. You can use RLOCK() as a check at start of edit and just
>leave the lock until end of edit
That's what I ended up doing. I'd like to thank everyone who chimed in: I always work with optimistic table buffering, and do reconciliation at the end, so trying to work this in to an existing app threw me.