diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp index 347ed299f5..2cab63afad 100644 --- a/src/msw/treectrl.cpp +++ b/src/msw/treectrl.cpp @@ -1659,9 +1659,14 @@ void wxTreeCtrl::DeleteChildren(const wxTreeItemId& item) void wxTreeCtrl::DeleteAllItems() { - // delete stored root item. - delete GET_VIRTUAL_ROOT(); + // delete the "virtual" root item. + if ( GET_VIRTUAL_ROOT() ) + { + delete GET_VIRTUAL_ROOT(); + m_pVirtualRoot = NULL; + } + // and all the real items if ( !TreeView_DeleteAllItems(GetHwnd()) ) { wxLogLastError(wxT("TreeView_DeleteAllItems"));