diff --git a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
index 845e94ebb7253bc980a35548278d6486347aae3a..1b7928266a57a823153de5bf30ababd35c544890 100644
--- a/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
+++ b/GUI/View/MaterialEditor/MaterialEditorDialog.cpp
@@ -32,9 +32,23 @@
 #include <QHBoxLayout>
 #include <QVBoxLayout>
 
-MaterialEditorDialog::MaterialEditorDialog(SampleItem* sample, QWidget* parent)
-    : QDialog(parent)
-    , m_sample(sample)
+//! Static caller
+
+QString MaterialEditorDialog::chooseMaterial(SampleItem* sample,
+                                             const QString& identifierOfPreviousMaterial)
+{
+    MaterialEditorDialog dialog(sample);
+    dialog.setCurrentMaterial(identifierOfPreviousMaterial);
+    if (dialog.exec() == QDialog::Accepted)
+        if (MaterialItem* material = dialog.currentMaterialItem())
+            return material->identifier();
+
+    return {};
+}
+
+
+MaterialEditorDialog::MaterialEditorDialog(SampleItem* sample)
+    : m_sample(sample)
 {
     setObjectName("MaterialEditorDialog");
 
@@ -95,26 +109,29 @@ MaterialEditorDialog::MaterialEditorDialog(SampleItem* sample, QWidget* parent)
 
     // Refractive data
 
-    m_refractiveGroupBox = new QGroupBox("Material data (refractive index based)");
-    ed_vlayout->addWidget(m_refractiveGroupBox);
+    m_refr_group = new QGroupBox("Material data (refractive index based)");
+    ed_vlayout->addWidget(m_refr_group);
 
-    auto* formLayout_5 = new QFormLayout(m_refractiveGroupBox); // WHERE USED?
+    auto* refr_form = new QFormLayout;
+    m_refr_group->setLayout(refr_form);
     m_deltaEdit = new QLineEdit;
     m_deltaEdit->setToolTip("Delta of refractive index (n = 1 - delta + i*beta)");
     m_betaEdit = new QLineEdit;
     m_betaEdit->setToolTip("Beta of refractive index (n = 1 - delta + i*beta)");
-    formLayout_5->addRow("Delta:", m_deltaEdit);
-    formLayout_5->addRow("Beta:", m_betaEdit);
+    refr_form->addRow("Delta:", m_deltaEdit);
+    refr_form->addRow("Beta:", m_betaEdit);
 
-    m_sldGroupBox = new QGroupBox("Material data (SLD based [1/Ų])");
-    ed_vlayout->addWidget(m_sldGroupBox);
-    auto* formLayout_4 = new QFormLayout;
+    m_sld_group = new QGroupBox("Material data (SLD based [1/Ų])");
+    ed_vlayout->addWidget(m_sld_group);
+
+    auto* sld_form = new QFormLayout;
+    m_refr_group->setLayout(sld_form);
     m_realEdit = new QLineEdit;
     m_realEdit->setToolTip("Real part of SLD (SLD = real - i*imag), AA^{-2}");
     m_imaginaryEdit = new QLineEdit;
     m_imaginaryEdit->setToolTip("Imaginary part of SLD (SLD = real - i*imag), AA^{-2}");
-    formLayout_4->addRow("Real:", m_realEdit);
-    formLayout_4->addRow("Imaginary:", m_imaginaryEdit);
+    sld_form->addRow("Real:", m_realEdit);
+    sld_form->addRow("Imaginary:", m_imaginaryEdit);
 
     // Magnetization
 
@@ -246,9 +263,11 @@ MaterialEditorDialog::MaterialEditorDialog(SampleItem* sample, QWidget* parent)
     if (m_model->rowCount() > 0)
         m_treeView->setCurrentIndex(m_model->first());
     else {
-        m_sldGroupBox->hide();
+        m_sld_group->hide();
         m_editor->setEnabled(false);
     }
+
+    onSelectMaterial();
 }
 
 MaterialEditorDialog::~MaterialEditorDialog()
@@ -262,18 +281,6 @@ void MaterialEditorDialog::accept()
     QDialog::accept();
 }
 
-QString MaterialEditorDialog::chooseMaterial(QWidget* parent, SampleItem* sample,
-                                             const QString& identifierOfPreviousMaterial)
-{
-    MaterialEditorDialog dialog(sample, parent);
-    dialog.setCurrentMaterial(identifierOfPreviousMaterial);
-    if (dialog.exec() == QDialog::Accepted)
-        if (MaterialItem* material = dialog.currentMaterialItem())
-            return material->identifier();
-
-    return {};
-}
-
 void MaterialEditorDialog::addRefractiveMaterial()
 {
     setCurrentMaterial(m_model->addRefractiveMaterialItem("unnamed", 0.0, 0.0));
@@ -293,7 +300,7 @@ void MaterialEditorDialog::cloneCurrentMaterial()
 void MaterialEditorDialog::removeCurrentMaterial()
 {
     MaterialItem* material = currentMaterialItem();
-    if (material == nullptr)
+    if (!material)
         return;
 
     if (identifiersOfUsedMaterials().contains(material->identifier())) {
@@ -313,6 +320,16 @@ void MaterialEditorDialog::onSelectColor()
     fill();
 }
 
+void MaterialEditorDialog::onSelectMaterial()
+{
+    MaterialItem* material = currentMaterialItem();
+    if (!material)
+        return;
+
+    m_refr_group->setVisible(material->hasRefractiveIndex());
+    m_sld_group->setVisible(!material->hasRefractiveIndex());
+}
+
 void MaterialEditorDialog::updateActionEnabling()
 {
     m_removeMaterialAction->setEnabled(currentIndex().isValid());
@@ -330,8 +347,8 @@ void MaterialEditorDialog::fill()
 
     m_editor->setEnabled(materialItem != nullptr);
     if (materialItem == nullptr) {
-        m_refractiveGroupBox->show();
-        m_sldGroupBox->hide();
+        m_refr_group->show();
+        m_sld_group->hide();
         for (auto* lineEdit : m_editor->findChildren<QLineEdit*>())
             lineEdit->clear();
         for (auto* spinBox : m_editor->findChildren<QDoubleSpinBox*>())
@@ -339,9 +356,6 @@ void MaterialEditorDialog::fill()
         return;
     }
 
-    m_refractiveGroupBox->setVisible(materialItem->hasRefractiveIndex());
-    m_sldGroupBox->setVisible(!materialItem->hasRefractiveIndex());
-
     m_nameEdit->setText(materialItem->matItemName());
     m_colorInfo->setText(QString("[%1, %2, %3] (%4)")
                              .arg(materialItem->color().red())
@@ -368,11 +382,13 @@ void MaterialEditorDialog::fill()
 void MaterialEditorDialog::setCurrentMaterial(const MaterialItem* m)
 {
     m_treeView->setCurrentIndex(m_model->indexFromMaterial(m));
+    onSelectMaterial();
 }
 
 void MaterialEditorDialog::setCurrentMaterial(const QString& identifier)
 {
     m_treeView->setCurrentIndex(m_model->indexFromMaterial(identifier));
+    onSelectMaterial();
 }
 
 QModelIndex MaterialEditorDialog::currentIndex() const
diff --git a/GUI/View/MaterialEditor/MaterialEditorDialog.h b/GUI/View/MaterialEditor/MaterialEditorDialog.h
index d5a305cb9615064918971ace29d837455aa11ea9..856c1d621f6735540bb2a64979eb34172fcb1336 100644
--- a/GUI/View/MaterialEditor/MaterialEditorDialog.h
+++ b/GUI/View/MaterialEditor/MaterialEditorDialog.h
@@ -41,11 +41,11 @@ public:
     //! Use this to choose a material. identifierOfPreviousMaterial is the material which should be
     //! selected when opening the dialog. Returns the identifier of the newly selected material.
     //! Returns an empty string, if the dialog is cancelled.
-    static QString chooseMaterial(QWidget* parent, SampleItem* sample,
+    static QString chooseMaterial(SampleItem* sample,
                                   const QString& identifierOfPreviousMaterial);
 
 private:
-    MaterialEditorDialog(SampleItem* sample, QWidget* parent = nullptr);
+    MaterialEditorDialog(SampleItem* sample);
     ~MaterialEditorDialog() override;
 
     //! updates original material model with the edited model
@@ -57,6 +57,8 @@ private:
     void removeCurrentMaterial();
 
     void onSelectColor();
+    void onSelectMaterial();
+
     void updateActionEnabling();
     void fill();
     void setCurrentMaterial(const MaterialItem* m);
@@ -68,7 +70,6 @@ private:
     //! E.g. the material selected in a particle.
     QStringList identifiersOfUsedMaterials() const;
 
-private:
     MaterialModel m_tmpMaterialModel; //! Materials for working within this dialog
 
     QAction* m_cloneMaterialAction;
@@ -80,8 +81,8 @@ private:
     QTreeView* m_treeView;
     QPushButton* m_selectColorButton;
     QWidget* m_editor;
-    QGroupBox* m_sldGroupBox;
-    QGroupBox* m_refractiveGroupBox;
+    QGroupBox* m_sld_group;
+    QGroupBox* m_refr_group;
     QDoubleSpinBox* m_xSpinBox;
     QDoubleSpinBox* m_ySpinBox;
     QDoubleSpinBox* m_zSpinBox;
diff --git a/GUI/View/Sample/MaterialInplaceForm.cpp b/GUI/View/Sample/MaterialInplaceForm.cpp
index 368de35d651c7f32af9dc85b980c9e095ab8533d..3cd18ab5fd4566abac1765f098226789ddc45bc2 100644
--- a/GUI/View/Sample/MaterialInplaceForm.cpp
+++ b/GUI/View/Sample/MaterialInplaceForm.cpp
@@ -59,7 +59,7 @@ void MaterialInplaceForm::selectMaterial()
 {
     const auto materialsBackup = GUI::Util::createBackup(&m_ec->sampleItem()->materialModel());
     const QString newMaterialIdentifier = MaterialEditorDialog::chooseMaterial(
-        GUI::Global::mainWindow, m_ec->sampleItem(), m_item->materialIdentifier());
+        m_ec->sampleItem(), m_item->materialIdentifier());
 
     if (!newMaterialIdentifier.isEmpty() && newMaterialIdentifier != m_item->materialIdentifier()) {
         itemWithMaterial()->materialItem()->disconnect(this);