diff --git a/GUI/coregui/Models/ApplicationModels.cpp b/GUI/coregui/Models/ApplicationModels.cpp
index 77d27de98b17189704e0cd3ab156fbe62f12c9b7..2fca9e0ce903c12b660ac76b14cda8c7a748b611 100644
--- a/GUI/coregui/Models/ApplicationModels.cpp
+++ b/GUI/coregui/Models/ApplicationModels.cpp
@@ -214,6 +214,8 @@ void ApplicationModels::readFrom(QXmlStreamReader* reader, WarningMessageService
             break;
         }
     }
+
+    m_materialPropertyController->onMaterialModelLoad();
 }
 
 //! Returns the list of all GUI models
diff --git a/GUI/coregui/Models/MaterialPropertyController.cpp b/GUI/coregui/Models/MaterialPropertyController.cpp
index 62158ae0039cacf05cd3df187af9090ba6d6759a..6efbe76b1da1d5c13c712520a6a70aa6a86c01e7 100644
--- a/GUI/coregui/Models/MaterialPropertyController.cpp
+++ b/GUI/coregui/Models/MaterialPropertyController.cpp
@@ -44,6 +44,27 @@ void MaterialPropertyController::setModels(MaterialModel* materialModel, SampleM
             &MaterialPropertyController::onMaterialModelLoad);
 }
 
+//! Special case when original MaterialModel was fully rebuild from MaterialEditor.
+//! Full update of MaterialProperties.
+
+void MaterialPropertyController::onMaterialModelLoad()
+{
+    for (auto sampleItem : relatedSampleItems()) {
+        QString tag = MaterialItemUtils::materialTag(*sampleItem);
+        Q_ASSERT(!tag.isEmpty());
+
+        ExternalProperty property = sampleItem->getItemValue(tag).value<ExternalProperty>();
+        if (MaterialItem* material
+            = m_materialModel->materialFromIdentifier(property.getIdentifier())) {
+            ExternalProperty new_property = MaterialItemUtils::materialProperty(*material);
+            sampleItem->setItemValue(tag, new_property.getVariant());
+        } else {
+            ExternalProperty undefined;
+            sampleItem->setItemValue(tag, undefined.getVariant());
+        }
+    }
+}
+
 //! On MaterialItem change: updates corresponding MaterialProperty in sample items.
 
 void MaterialPropertyController::onMaterialDataChanged(const QModelIndex& topLeft,
@@ -96,27 +117,6 @@ void MaterialPropertyController::onMaterialRowsAboutToBeRemoved(const QModelInde
     }
 }
 
-//! Special case when original MaterialModel was fully rebuild from MaterialEditor.
-//! Full update of MaterialProperties.
-
-void MaterialPropertyController::onMaterialModelLoad()
-{
-    for (auto sampleItem : relatedSampleItems()) {
-        QString tag = MaterialItemUtils::materialTag(*sampleItem);
-        Q_ASSERT(!tag.isEmpty());
-
-        ExternalProperty property = sampleItem->getItemValue(tag).value<ExternalProperty>();
-        if (MaterialItem* material
-            = m_materialModel->materialFromIdentifier(property.getIdentifier())) {
-            ExternalProperty new_property = MaterialItemUtils::materialProperty(*material);
-            sampleItem->setItemValue(tag, new_property.getVariant());
-        } else {
-            ExternalProperty undefined;
-            sampleItem->setItemValue(tag, undefined.getVariant());
-        }
-    }
-}
-
 //! Returns vector of SessionItems having MaterialProperty on board.
 
 QVector<SessionItem*> MaterialPropertyController::relatedSampleItems()
diff --git a/GUI/coregui/Models/MaterialPropertyController.h b/GUI/coregui/Models/MaterialPropertyController.h
index d9957fe35cff0b74b32076bc00212886fbff2e76..5e7b30325ebff25ae65d96aaedf4af380f3b57a1 100644
--- a/GUI/coregui/Models/MaterialPropertyController.h
+++ b/GUI/coregui/Models/MaterialPropertyController.h
@@ -35,10 +35,12 @@ public:
 
     void setModels(MaterialModel* materialModel, SampleModel* sampleModel);
 
+public slots:
+    void onMaterialModelLoad();
+
 private slots:
     void onMaterialDataChanged(const QModelIndex &topLeft, const QModelIndex &, const QVector<int> &);
     void onMaterialRowsAboutToBeRemoved(const QModelIndex &parent, int first, int last);
-    void onMaterialModelLoad();
 
 private:
     QVector<SessionItem*> relatedSampleItems();