diff --git a/src/App/PropertyLinks.cpp b/src/App/PropertyLinks.cpp index 3d090cc384..f7d65a4187 100644 --- a/src/App/PropertyLinks.cpp +++ b/src/App/PropertyLinks.cpp @@ -4281,14 +4281,12 @@ void PropertyXLink::Restore(Base::XMLReader& reader) name = reader.getAttribute("name"); } - assert(getContainer()->isDerivedFrom()); DocumentObject* object = nullptr; if (!name.empty() && file.empty()) { - DocumentObject* parent = static_cast(getContainer()); - Document* document = parent->getDocument(); - object = document ? document->getObject(name.c_str()) : nullptr; - if (!object) { - if (reader.isVerbose()) { + if (auto parent = freecad_cast(getContainer())) { + Document* document = parent->getDocument(); + object = document ? document->getObject(name.c_str()) : nullptr; + if (!object && reader.isVerbose()) { FC_WARN("Lost link to '" << name << "' while loading, maybe " "an object was not loaded correctly");