diff --git a/src/libs/ifc/xml/vdomdocument.cpp b/src/libs/ifc/xml/vdomdocument.cpp index a9acc8b00..f4444b476 100644 --- a/src/libs/ifc/xml/vdomdocument.cpp +++ b/src/libs/ifc/xml/vdomdocument.cpp @@ -232,10 +232,14 @@ QDomElement VDomDocument::elementById(quint32 id, const QString &tagName) if (tagName.isEmpty()) { - if (VDomDocument::find(m_elementIdCache, this->documentElement(), id)) + // Because VDomDocument::find checks for unique id we must use temp cache + QHash tmpCache; + if (VDomDocument::find(tmpCache, this->documentElement(), id)) { - return m_elementIdCache.value(id); + m_elementIdCache = tmpCache; + return m_elementIdCache.value(id); } + m_elementIdCache = tmpCache; } else {