diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index e1ab9539cf..d5404a5cb8 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -473,9 +473,16 @@ void MDIViewPage::fixOrphans(bool force) } // if qView doesn't have a Feature on this Page, delete it - std::vector qvs = m_view->getViews(); + std::vector qvss = m_view->getViews(); + // qvss may contain an item and its child item(s) and to avoid to access a deleted item a QPointer is needed + std::vector> qvs; + std::for_each(qvss.begin(), qvss.end(), [&qvs](QGIView* v) { + qvs.emplace_back(v); + }); App::Document* doc = getAppDocument(); for (auto& qv: qvs) { + if (!qv) + continue; // already deleted? App::DocumentObject* obj = doc->getObject(qv->getViewName()); if (obj == nullptr) { m_view->removeQView(qv);