As for the second question, you'll need to do wht you said, and test the IsDirty() property of the business object before you show the BrowseDialog.The best thing would probably be to go through the business objects in the Form.GetListOfSaveBOs(), which will return an array of the business objects that will be included in the save. If any of them are dirty, then show the message and handle the logic accordingly.