CREATE CURSOR c_test (PK I AUTOINC, VALUE C(10)) IF FILE('c:\temp\test_unique.dbf') ELSE create table c:\temp\test_unique (PK I, VALUE C(10)) endif USE c:\temp\test_unique IN SELECT('test_unique') AGAIN shared * start at an specific time clear ldScheduled = DATETIME(null, null, null, HOUR(DATETIME()), (MINUTE(DATETIME()) + 1) % 60, 0) DO WHILE DATETIME() < ldScheduled ENDDO ? 'Started at: ', SECONDS(), 'Time: ', DATETIME(), 'Scheduled: ', ldScheduled font "Courier New", 10 lnStart = SECONDS() FOR i = 1 TO 1000000 INSERT INTO c_test (value) VALUES (SYS(2015)) NEXT i ? SECONDS() - lnStart SELECT test_unique APPEND FROM DBF('c_test')The programs started all withing a hundredth? of a second at 47580.012, 47580.007 and 47580.004 and they ran for .754, .809 and .931. Considering that they are creating 1000+ records per millisecond, it means that it is quite likely that they were creating records at the exact same time, (I know I am exaggerating) but getting a different SYS(2015) value nonetheless, so, in short it seems that it generates different values across sessions.