diff --git a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
index 6f99121d5f5a7aa2019be64a378ba0d29e466b30..7faec18e91811731c0fb80535aeac67b2efba933 100644
--- a/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
+++ b/GUI/coregui/Views/MaterialEditor/MaterialItemUtils.cpp
@@ -27,6 +27,7 @@
 #include "GUI/coregui/Views/MaterialEditor/MaterialEditorDialog.h"
 #include "GUI/coregui/Views/SampleDesigner/DesignerHelper.h"
 #include "GUI/coregui/mainwindow/AppSvc.h"
+#include "GUI/coregui/mainwindow/mainwindow.h"
 #include "GUI/coregui/utils/GUIHelpers.h"
 #include "Sample/Material/Material.h"
 #include <QColorDialog>
@@ -141,7 +142,7 @@ ExternalProperty MaterialItemUtils::colorProperty(const QColor& color) {
 }
 
 ExternalProperty MaterialItemUtils::selectMaterialProperty(const ExternalProperty& previous) {
-    MaterialEditorDialog dialog(AppSvc::materialModel());
+    MaterialEditorDialog dialog(AppSvc::materialModel(), MainWindow::instance());
     dialog.setMaterialProperty(previous);
     if (dialog.exec() == QDialog::Accepted) {
         return dialog.selectedMaterialProperty();
diff --git a/GUI/coregui/mainwindow/mainwindow.cpp b/GUI/coregui/mainwindow/mainwindow.cpp
index 24b460fb69af26b0ed8dd033fe6cbbee469498d0..005416b175599b41390b5554a9c14c2c8bc3591b 100644
--- a/GUI/coregui/mainwindow/mainwindow.cpp
+++ b/GUI/coregui/mainwindow/mainwindow.cpp
@@ -38,6 +38,8 @@
 #include <qt-manhattan-style/progressbar.h>
 #include <qt-manhattan-style/stylehelper.h>
 
+MainWindow* MainWindow::s_instance = nullptr;
+
 MainWindow::MainWindow()
     : Manhattan::FancyMainWindow(nullptr)
     , m_tabWidget(new Manhattan::FancyTabWidget(this))
@@ -54,6 +56,7 @@ MainWindow::MainWindow()
     , m_simulationView(0)
     , m_jobView(0)
     , m_sessionModelView(0) {
+    s_instance = this;
     initApplication();
     readSettings();
     initProgressBar();
@@ -65,6 +68,14 @@ MainWindow::MainWindow()
     //    m_applicationModels->createTestRealData();
 }
 
+MainWindow::~MainWindow() {
+    s_instance = nullptr;
+}
+
+MainWindow* MainWindow::instance() {
+    return s_instance;
+}
+
 MaterialModel* MainWindow::materialModel() {
     return models()->materialModel();
 }
diff --git a/GUI/coregui/mainwindow/mainwindow.h b/GUI/coregui/mainwindow/mainwindow.h
index fad9c7e04205b2aab90737d4741d3ef279259175..d6df9c74623894e30efbca661898fcb26f5fbe3f 100644
--- a/GUI/coregui/mainwindow/mainwindow.h
+++ b/GUI/coregui/mainwindow/mainwindow.h
@@ -48,6 +48,10 @@ public:
     enum ETabViewId { WELCOME, INSTRUMENT, SAMPLE, IMPORT, SIMULATION, JOB, MAXVIEWCOUNT };
 
     explicit MainWindow();
+    ~MainWindow();
+
+    //! Returns the one and only instance of this class
+    static MainWindow* instance();
 
     MaterialModel* materialModel();
     InstrumentModel* instrumentModel();
@@ -96,6 +100,9 @@ private:
     SimulationView* m_simulationView;
     JobView* m_jobView;
     SessionModelView* m_sessionModelView;
+
+    //! Holds the one and only instance of this class
+    static MainWindow* s_instance;
 };
 
 #endif // BORNAGAIN_GUI_COREGUI_MAINWINDOW_MAINWINDOW_H