Remember that begin- and end-form functions are called once during form processing. For this reason, in your begin- and end-form functions, you should not change system globals in ways that apply only to this form. If the form is suspended, the end-form function will not be called, and the system globals that you changed in your begin-form function will not be reset. For example, if you need to modify the form event table to add an event for this form, you should do that in activate and suspend functions, not begin- and end-form functions. If you add the event in an activate function and remove it in a suspend function, you can be sure that the event function will only be available while the user is processing the form. If you add the function in a begin-form function and remove it in an end-form function, there is a chance that the function could be available while the form is suspended and the user is actually processing another panel.