PROCEDURE SetID LOCAL lntheKey lntheKey = 0 DO WHILE .T. theKey = theKey+1 IF INDEXSEEK(lntheKey,.F.,"theTable","id") LOOP ENDIF EXIT ENDDO RETURN lntheKey PROCEDURE SetUID LOCAL lntheKey lntheKey = 0 DO WHILE .T. lntheKey = lntheKey+1 IF INDEXSEEK(lntheKey,.F.,"theTable","uid") LOOP ENDIF EXIT ENDDO RETURN lntheKeySetId() gets called first and, on entry into SetUID(), theTable.id field is populated as expected.