Should a dialog be put onto the CleanupStack before calling ExecuteLD, since surely ExecuteLD must be performing leaving operations before it deletes the dialog?