MDI Children handle goes away - MAJOR PROBLEM!

Hi,

I have a main form (MDIForm) and a DLL.  In the DLL I have an MDI child
called TFrmEditor.  I am creating new editor instances by calling a DLL
function.  THis all works fine - as expected.  I have some code which get
custom information when you put the mouse over certain text in the editor
window.  This works fine also.  Tonight however, I discovered a terrible
thing.

Everytime I create a new editor form (I am doing it like this:
FrmEditor := TFrmEditor.Create(Application);)  all other MDI children change
their handle.

This I can deal with - as my messages still manage to get through (I presume
MDI parent is updating the list of children).  The problem is this:

When I close one of those forms (using Action := caFree; in the OnClose) all
mdi children of type TFrmEditor loose their handles - thats right - they
have NO handles.  They don't even return 0 - they are nonexistant.  I get
access violations everytime I attempt to send a message to any of the
children forms.

When I create a new FrmEditor (After all the children loose their handles) I
get handles back (different again from the previous two handles).

Can anyone tell me how I can fix this?  I need to make sure the children
always have handles- even when I free one of them.

Thanks in advance, and sorry for the novel :)

Jamie.