Define Class Deeventbrowser as dataenvironment Top = 196 Left = 5 Width = 668 Height = 506 DataSource = .NULL. Add Object curEvents as cursor with ; Top = 20, ; Left = 10, ; ... (dozen more cursors here) ... PROCEDURE Init Locate && breaks here, because no tables are open (more code here) PROCEDURE BeforeOpenTables Set Date ANSI Set Century on Set Mark to "-" Set Talk Off Set Nulldisplay To "---" Set Safety Off Set Exclusive Off Set Deleted On ENDPROC PROCEDURE Cursor3.Init * just a little nothing ENDPROC EndDefineThis is actually an export of an old DE which used to be in a form. There, the .BefOT code ran first, then the tables opened, then form.load, then all the controls instantiated, then de.init ran, then form.init. Which was fine.