diff --git a/src/libs/ifc/xml/vdomdocument.cpp b/src/libs/ifc/xml/vdomdocument.cpp index 4841f683d..27292c9c8 100644 --- a/src/libs/ifc/xml/vdomdocument.cpp +++ b/src/libs/ifc/xml/vdomdocument.cpp @@ -231,10 +231,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 {