TIBEvent and Interbase Server down

HELP!!!

I'm having serious issues with interbase and closing the service while
client applications are still connected.
These clients have events registered with the interbase server. However when
the server is killed (i.e. server box rebooted / service restarted) the
events cannot be re-registered. Why is this happening?

I'm also having some problems even attempting to re-connect to the server.
If I am in mid .TestConnection and start the server during this time I get
an access violation. I've found a code snippet to actually re-connect ( as
ForceDisconnect seems to cause some problems som time) this is attached
below and The AV still occurs. It seems to be raised outside of the main
thread as my application event handler doesn't catch this and it raises in
within an exception dialog still.

I'm using Delphi 6 , IBX 6.04, Interbase 6.