diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 32ac784b3c..91a402f922 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -277,7 +277,7 @@ void wxPropertyGridPageState::InitNonCatMode() void wxPropertyGridPageState::DoClear() { - if ( m_pPropGrid && m_pPropGrid->GetState() == this ) + if ( m_pPropGrid && m_pPropGrid->GetState() == this ) { m_pPropGrid->ClearSelection(false); } @@ -295,7 +295,11 @@ void wxPropertyGridPageState::DoClear() !it.AtEnd(); it++ ) { - DoDelete(*it, true); + wxPGProperty *p = *it; + // Do not attempt to explicitly remove sub-properties. + // They will be removed in their parent property dtor. + if ( !p->GetParent()->HasFlag(wxPG_PROP_AGGREGATE) ) + DoDelete(p, true); } } else