Vladimir,
Just to clear this up, QueryUnload fires if the form is released by using the control menu, the x in the right corner of the form title bar or by RELEASE command. If the Release method is called the QueryUnload will NOT be called. Issuing NODEFAULT in either the QueryUnload or in the Release will prevent the form from being released. The Destroy event is too late tp stop the process.