&& Grid Init: && save recordsource and controlsources WITH THIS .AddProperty('cRecordSource',.RecordSource) FOR EACH oColumn IN .Columns oColumn.AddProperty('cOriginalControlSource',oColumn.ControlSource) ENDFOR ENDWITH && Grid Lock Method: && unbind grid THIS.RecordSource = '' && Grid Unlock Method: && rebind grid .. WITH THIS .RecordSource = .cRecordSource FOR EACH oColumn IN .Columns oColumn.ControlSource = oColumn.cOriginalControlSource ENDFOR ENDWITH the order of calls would be THISFORM.yourGrid.Lock() && mess around with the cursor .. recreate it ... destroy it .. or whatever .. and when finished .. and the cursor is available again .. THISFORM.yourGrid.Unlock() && tell the grid to rebind ..Regards