diff --git a/GUI/Model/Fit/ParameterTreeItems.cpp b/GUI/Model/Fit/ParameterTreeItems.cpp
index 3136a9d89623e010595e2bb9df5da1c55c6905a6..8a02db6358654602716d16283468e14362e36907 100644
--- a/GUI/Model/Fit/ParameterTreeItems.cpp
+++ b/GUI/Model/Fit/ParameterTreeItems.cpp
@@ -128,6 +128,12 @@ void ParameterContainerItem::readNonSessionItems(QXmlStreamReader* reader)
     }
 }
 
+bool ParameterContainerItem::allowWritingChildToXml(SessionItem* /*child*/) const
+{
+    // no children are written. The contained tree is always generated
+    return false;
+}
+
 void ParameterContainerItem::setBackupValue(const QString& link, double d)
 {
     m_backupValues[link] = d;
diff --git a/GUI/Model/Fit/ParameterTreeItems.h b/GUI/Model/Fit/ParameterTreeItems.h
index 2490ba5b34ba04739a0f4e5d08420df6d240eb21..eac324e955a240ddfea50dc951718fb53421d72f 100644
--- a/GUI/Model/Fit/ParameterTreeItems.h
+++ b/GUI/Model/Fit/ParameterTreeItems.h
@@ -58,6 +58,7 @@ public:
 
     void writeNonSessionItems(QXmlStreamWriter* writer) const override;
     void readNonSessionItems(QXmlStreamReader* reader) override;
+    bool allowWritingChildToXml(SessionItem* child) const override;
 
     void setBackupValue(const QString& link, double d);
     void restoreBackupValues();
diff --git a/GUI/Model/Job/JobModel.cpp b/GUI/Model/Job/JobModel.cpp
index 5be457112658b547410151289b6bc0594d5a692f..9f882e1d76d093c9e86bd948209b5db9583c0a08 100644
--- a/GUI/Model/Job/JobModel.cpp
+++ b/GUI/Model/Job/JobModel.cpp
@@ -90,7 +90,7 @@ JobItem* JobModel::addJob(const MultiLayerItem* multiLayerItem,
 
     jobItem->setSampleName(multiLayerItem->itemName());
 
-    GUI::Model::ParameterTreeUtils::createParameterTree(jobItem);
+    GUI::Model::ParameterTreeUtils::createParameterTree(jobItem, true);
 
     GUI::Model::JobFunctions::setupJobItemOutput(jobItem);
 
@@ -172,6 +172,9 @@ void JobModel::readFrom(QXmlStreamReader* reader, MessageService* messageService
             itemWithMaterial->setMaterialFinder([=](const QString& id) {
                 return jobItem->materialContainerItem()->findMaterialById(id);
             });
+
+        // Create the not stored parameter tuning tree
+        GUI::Model::ParameterTreeUtils::createParameterTree(jobItem, false);
     }
 }
 
diff --git a/GUI/Model/Job/ParameterTreeUtils.cpp b/GUI/Model/Job/ParameterTreeUtils.cpp
index 85c4aef7f4712e848e49df2b3b0b547b6c928341..7a7a2ca73c92b64f342682cf6fbbd028aee19fe5 100644
--- a/GUI/Model/Job/ParameterTreeUtils.cpp
+++ b/GUI/Model/Job/ParameterTreeUtils.cpp
@@ -29,7 +29,8 @@ using boost::polymorphic_downcast;
 
 namespace {
 
-void handleItem(ParameterContainerItem* container, SessionItem* tree, const SessionItem* source)
+void handleItem(ParameterContainerItem* container, SessionItem* tree, const SessionItem* source,
+                bool recreateBackupValues)
 {
     if (tree->hasModelType<ParameterLabelItem>())
         tree->setDisplayName(source->itemName());
@@ -44,7 +45,8 @@ void handleItem(ParameterContainerItem* container, SessionItem* tree, const Sess
         path = path.mid(firstSlash + 1);
         auto* parItem = polymorphic_downcast<ParameterItem*>(tree);
         parItem->setLink(path);
-        container->setBackupValue(parItem->link(), sourceValue);
+        if (recreateBackupValues)
+            container->setBackupValue(parItem->link(), sourceValue);
         return;
     }
 
@@ -56,18 +58,18 @@ void handleItem(ParameterContainerItem* container, SessionItem* tree, const Sess
             if (child->hasModelType<PropertyItem>()) {
                 if (child->value().type() == QVariant::Double) {
                     auto* branch = tree->model()->insertItem<ParameterItem>(tree);
-                    handleItem(container, branch, child);
+                    handleItem(container, branch, child, recreateBackupValues);
                 }
 
             } else if (child->hasModelType<GroupItem>()) {
                 SessionItem* currentItem = dynamic_cast<GroupItem*>(child)->currentItem();
                 if (currentItem && currentItem->numberOfChildren() > 0) {
                     auto* branch = tree->model()->insertItem<ParameterLabelItem>(tree);
-                    handleItem(container, branch, currentItem);
+                    handleItem(container, branch, currentItem, recreateBackupValues);
                 }
             } else {
                 auto* branch = tree->model()->insertItem<ParameterLabelItem>(tree);
-                handleItem(container, branch, child);
+                handleItem(container, branch, child, recreateBackupValues);
             }
         }
     }
@@ -76,23 +78,25 @@ void handleItem(ParameterContainerItem* container, SessionItem* tree, const Sess
 //! Populates ParameterContainer with ParameterItem's corresponding to all properties found
 //! in a source item.
 
-void populateParameterContainer(ParameterContainerItem* container, const SessionItem* source)
+void populateParameterContainer(ParameterContainerItem* container, const SessionItem* source,
+                                bool recreateBackupValues)
 {
     auto* sourceLabel = container->model()->insertItem<ParameterLabelItem>(container);
-    handleItem(container, sourceLabel, source);
+    handleItem(container, sourceLabel, source, recreateBackupValues);
 }
 
 } // namespace
 
-void GUI::Model::ParameterTreeUtils::createParameterTree(JobItem* jobItem)
+void GUI::Model::ParameterTreeUtils::createParameterTree(JobItem* jobItem,
+                                                         bool recreateBackupValues)
 {
     auto* container = jobItem->parameterContainerItem();
     if (!container)
         container = jobItem->createParameterContainerItem();
 
-    populateParameterContainer(container, jobItem->materialContainerItem());
+    populateParameterContainer(container, jobItem->materialContainerItem(), recreateBackupValues);
 
-    populateParameterContainer(container, jobItem->sampleItem());
+    populateParameterContainer(container, jobItem->sampleItem(), recreateBackupValues);
 
-    populateParameterContainer(container, jobItem->instrumentItem());
+    populateParameterContainer(container, jobItem->instrumentItem(), recreateBackupValues);
 }
diff --git a/GUI/Model/Job/ParameterTreeUtils.h b/GUI/Model/Job/ParameterTreeUtils.h
index 6317d8d6555d7bda29cd142874c617e000066b12..4473e999491d67531a84b6d0a8fbd5f16df78b95 100644
--- a/GUI/Model/Job/ParameterTreeUtils.h
+++ b/GUI/Model/Job/ParameterTreeUtils.h
@@ -29,7 +29,7 @@ class ParameterItem;
 
 namespace GUI::Model::ParameterTreeUtils {
 
-void createParameterTree(JobItem* jobItem);
+void createParameterTree(JobItem* jobItem, bool recreateBackupValues);
 
 } // namespace GUI::Model::ParameterTreeUtils