Hi David,
>> Is this expected behavior?
Yes. Although sometimes it's called twice, sometimes once, it depends a bit on circumstances. A good way to see this in more detail is to go to the General tab of the form settings, right at the bottom is a setting to "Send stage to Debugview". This can be enlightening because it should how many times the Form "procedure" is called, and for what reason. A typical form can be called 6 or more times _just_ on startup. Of course it's doing different things each time - but the "collection of code called a form" is really a bunch of code snippets called from various places in the server.
Because of the paths various bits of code can take, the InitForm routine can be called twice.You'll notice however that it sets a Value
p_web.SetValue('MailboxesFormControl_form:inited_',1)
which you can test to see if you've been here before _on this thread_.
You may want to move your code to the PreUpdate routine which is called once.
Cheers
Bruce