git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23619 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
     // but hide it immediately
     Hide();
 
     // but hide it immediately
     Hide();
 
-    // also remove it from the list of parents children so that the loop in
-    // wxWindowBase::DestroyChildren() eventually terminates
-    if ( m_parent )
-    {
-        m_parent->RemoveChild(this);
-
-        // don't do it again in our dtor
-        m_parent = NULL;
-    }
-
 
 
         wxWindow *child = node->GetData();
 
 
         wxWindow *child = node->GetData();
 
+        // note that we really want to call delete and not ->Destroy() here
+        // because we want to delete the child immediately, before we are
+        // deleted, and delayed deletion would result in problems as our (top
+        // level) child could outlive its parent
+        delete child;
 
         wxASSERT_MSG( !GetChildren().Find(child),
                       wxT("child didn't remove itself using RemoveChild()") );
 
         wxASSERT_MSG( !GetChildren().Find(child),
                       wxT("child didn't remove itself using RemoveChild()") );