CLOSE DATABASES all CLEAR SET MULTILOCKS ON CREATE CURSOR foo (f1 I) INDEX ON DELETED() TAG deleted SET ORDER TO 0 INSERT INTO foo values(1) INSERT INTO foo values(2) INSERT INTO foo values(3) GO top DELETE GO BOTTOM delete ?ALIAS() LIST LOCAL oCA as CursorAdapter oCA=CREATEOBJECT("CursorAdapter") oCA.Alias="test" oCA.DataSourceType="NATIVE" oCA.SelectCmd="select * from foo where !DELETED()" oCA.InsertCmd="MyInsert(this)" *oCA.BufferModeOverride= 5 oCA.CursorFill() SELECT (oCA.Alias) ?ALIAS() LIST INSERT INTO (oCA.Alias) values(4) TABLEUPDATE(.F.) INSERT INTO (oCA.Alias) values(5) TABLEUPDATE(.F.) INSERT INTO (oCA.Alias) values(6) TABLEUPDATE(.F.) SELECT foo ?ALIAS() list FUNCTION MyInsert(oCA as CursorAdapter) SET ORDER TO deleted IN foo GO BOTTOM IN foo IF !EOF("foo") AND DELETED("foo") REPLACE f1 WITH EVALUATE(oCA.Alias+".f1") IN foo RECALL IN foo ELSE INSERT INTO foo VALUES(EVALUATE(oCA.Alias+".f1")) ENDIF ENDFUNC returnThanks,