Umm... I hate to tell you this, but I had your code running in two instances of VFP simultaneously, and neither one bombed. I did make the following changes to your code first:
1. I removed the SET PROCEDURE TO line. You haven't needed to set procedure to the prg you're running in since Foxbase.
2. I changed this code:
CREATE CURSOR TempSys (MyID I, NextID I)
APPEND BLANK
REPLACE MyID WITH 1, NextID WITH 1
COPY TO Test
USE IN TempSys
to this:
CREATE TABLE Test (MyID I, NextID I)
APPEND BLANK
REPLACE MyID WITH 1, NextID WITH 1
USE
3. I removed the "IN 0" when you opened VTEST. It wasn't finding any open table when it called SQLNextID because with the IN 0, it didn't open VTEST in the currently selected work area.
4. I added a zero to the top end of your FOR loop, so I had enough time to switch from one VFP window to the other to start both tests.
5. I did comment out the SET STEP ON, because I wanted to see it fail before I started tracing. Do you think there's only a problem when you have the debugger open?
None of these changes should have affected whether or not you get an update conflict.