diff --git a/GUI/Model/Util/UtilXML.h b/GUI/Model/Util/UtilXML.h
index 998ddc6dadae9b4fbe26078f472ea276e2e18318..47aa3aaacad14b6972459d120cc8ddc8c79e62bc 100644
--- a/GUI/Model/Util/UtilXML.h
+++ b/GUI/Model/Util/UtilXML.h
@@ -106,10 +106,11 @@ template <typename T> void readBaseElement(QXmlStreamReader* r, const QString& t
 template <typename C, typename... Args>
 typename C::BaseItem* readItemFrom(QXmlStreamReader* r, Args... args)
 {
+    using BaseItem = C::BaseItem;
     const uint typeIndex = readUInt(r, XML::Attrib::type);
     const QString kind = readString(r, XML::Attrib::kind);
     const auto type = static_cast<typename C::Type>(typeIndex);
-    C::BaseItem* t = C::create(type, args...);
+    BaseItem* t = C::create(type, args...);
     if (t)
         t->readFrom(r);
     return t;
@@ -118,7 +119,8 @@ typename C::BaseItem* readItemFrom(QXmlStreamReader* r, Args... args)
 template <typename C, typename... Args>
 typename C::BaseItem* readChosen(QXmlStreamReader* r, const QString& tag, Args... args)
 {
-    C::BaseItem* t = readItemFrom<C>(r, args...);
+    using BaseItem = C::BaseItem;
+    BaseItem* t = readItemFrom<C>(r, args...);
     gotoEndElementOfTag(r, tag);
     return t;
 }