Public oForm oForm = Createobject('myForm') oForm.Show Define Class myForm As Form DataSession = 2 Height = 400 Width=200 Add Object grd1 As Grid With Top=0,Left=0,Height=100,Width=200,RecordSource='crs1' Add Object grd2 As Grid With Top=110,Left=0,Height=100,Width=200,RecordSource='crs2' Add Object grd3 As Grid With Top=220,Left=0,Height=100,Width=200,RecordSource='crs3' Procedure Load Create Cursor crs1 (f1 i,f2 c(10)) Create Cursor crs2 (f1 i,f2 c(10)) Create Cursor crs3 (f1 i,f2 c(10)) For ix=1 To 10 Insert Into crs1 Values (m.ix,'crs1_'+Transform(m.ix)) Insert Into crs2 Values (m.ix,'crs2_'+Transform(m.ix)) Insert Into crs3 Values (m.ix,'crs3_'+Transform(m.ix)) Endfor Go 1 In 'crs1' Go 1 In 'crs2' Go 1 In 'crs3' Endproc EnddefineCursor creation implicitly selects a new workarea. If cursor 1 is disappearing then you're doing something explicitly to make it happen.