diff --git a/src/Gui/ViewProviderLink.cpp b/src/Gui/ViewProviderLink.cpp index 9f20fc9314..a706205798 100644 --- a/src/Gui/ViewProviderLink.cpp +++ b/src/Gui/ViewProviderLink.cpp @@ -2384,8 +2384,19 @@ bool ViewProviderLink::getDetailPath( bool ViewProviderLink::onDelete(const std::vector &) { auto element = getObject(); - if (element && !element->canDelete()) + if (element && !element->canDelete()) { return false; + } + + auto link = getObject(); + if (link->ElementCount.getValue() != 0) { + auto doc = link->getDocument(); + auto elements = link->ElementList.getValues(); + for (auto element : elements) { + doc->removeObject(element->getNameInDocument()); + } + } + auto ext = getLinkExtension(); if (ext->isLinkMutated()) { auto linked = ext->getLinkedObjectValue();