1) Override CursorFill method as follows: IF(this.CursorStatus!=0) USE IN (this.Alias) ENDIF USE <base table> IN 0 AGAIN ALIAS (this.Alias) SET ORDER TO ... this.CursorAttach(this.Alias) SELECT (this.Alias) 2) Override CursorRefresh method as follows: IF(this.CursorStatus!=0) SET KEY TO ... IN (this.Alias) && limit records for a new current customer GO TOP ELSE ERROR(...) ENDIF 3) Override CursorAttach as follows: * todo: check that cursor is base table DODEFAULT(cAlias,...) SET KEY TO ... IN (this.Alias) && limit records for current customer GO TOP this.SendUpdates=.F. && you don't want to send updates they'll be saved into base table any way this.Tables="" && has same effect as this.SendUpdates=.F. unless you provide custom Insert/Update/Delete commandThanks,