diff --git a/GUI/Model/Data/IntensityDataItem.cpp b/GUI/Model/Data/IntensityDataItem.cpp
index 28dd9feb4552330caefec412b31885e3862849a3..edf7c52b87c2eda4dcf7a403cb8bc636b7ce4b09 100644
--- a/GUI/Model/Data/IntensityDataItem.cpp
+++ b/GUI/Model/Data/IntensityDataItem.cpp
@@ -34,12 +34,6 @@ const QString Gradient("Gradient");
 
 } // namespace Tag
 
-namespace Attrib {
-
-const QString value("value");
-
-} // namespace Attrib
-
 // gradient map for colormaps
 const QMap<QString, QCPColorGradient::GradientPreset> gradient_map = {
     {"Grayscale", QCPColorGradient::gpGrayscale},
@@ -321,11 +315,13 @@ void IntensityDataItem::resetView()
 
 void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const
 {
+    XML::writeAttribute(writer, XML::Attrib::version, uint(1));
+
     DataItem::writeBaseData(writer);
 
     // interpolation
     writer->writeStartElement(Tag::Interpolation);
-    XML::writeAttribute(writer, Attrib::value, m_isInterpolated);
+    XML::writeAttribute(writer, XML::Attrib::value, m_isInterpolated);
     writer->writeEndElement();
 
     // gradient
@@ -341,27 +337,29 @@ void IntensityDataItem::writeTo(QXmlStreamWriter* writer) const
 
 void IntensityDataItem::readFrom(QXmlStreamReader* reader)
 {
+    uint version = XML::readUIntAttribute(reader, XML::Attrib::version);
+    Q_UNUSED(version)
+
     while (reader->readNextStartElement()) {
+        QString name = reader->name().toString();
 
         // interpolation
-        if (reader->name() == Tag::Interpolation) {
-            XML::readAttribute(reader, Attrib::value, &m_isInterpolated);
-            XML::gotoEndElementOfTag(reader, Tag::Interpolation);
+        if (name == Tag::Interpolation) {
+            XML::readAttribute(reader, XML::Attrib::value, &m_isInterpolated);
+            XML::gotoEndElementOfTag(reader, name);
 
             // gradient
-        } else if (reader->name() == Tag::Gradient) {
+        } else if (name == Tag::Gradient) {
             m_gradient.readFrom(reader);
-            XML::gotoEndElementOfTag(reader, Tag::Gradient);
+            XML::gotoEndElementOfTag(reader, name);
 
             // z axis
-        } else if (reader->name() == Tag::ZAxis) {
+        } else if (name == Tag::ZAxis) {
             m_zAxis->readFrom(reader);
-            XML::gotoEndElementOfTag(reader, Tag::ZAxis);
+            XML::gotoEndElementOfTag(reader, name);
 
-            // types from base class
-        } else {
+        } else
             DataItem::readBaseData(reader);
-        }
     }
 }
 
diff --git a/GUI/Support/XML/UtilXML.h b/GUI/Support/XML/UtilXML.h
index 15dd258fbe83a84883bd1b8ffbdc818342aecadf..33c380db881113aa436d08c272913284cf7991be 100644
--- a/GUI/Support/XML/UtilXML.h
+++ b/GUI/Support/XML/UtilXML.h
@@ -27,6 +27,13 @@ class QUuid;
 
 namespace XML {
 
+namespace Attrib {
+
+const QString value("value");
+const QString version("version");
+
+} // namespace Attrib
+
 namespace Tags {
 constexpr auto Id("id");
 constexpr auto TagAttribute("Tag");