I haven''t read every line of your code, so maybe there''s some other problem, but these lines in your destructor look wrong:
for (int i = 0;i < NumChildren;i++)
{
if (Children[NumChildren])
delete Children[NumChildren];
}
I think it should be:
for (int i = 0;i < NumChildren;i++)
{
if (Children)
delete Children;<br>}<br><br>Peter<br><br> </i>