diff --git a/App/main.cpp b/App/main.cpp
index 663f58a9ddeec1291bb5345e1ff49bf3efeb57f7..45d009f958401d49ff30f65996197be57a79aa68 100644
--- a/App/main.cpp
+++ b/App/main.cpp
@@ -70,13 +70,13 @@ int main(int argc, char* argv[])
     app.setWindowIcon(QIcon(":/images/BornAgain.ico"));
 #endif
 
-    ApplicationSettings applicationSettings;
+    gDirs = std::make_unique<Dirs>();
+    gApp = std::make_unique<ApplicationSettings>();
 
     QString dir = GUI::Path::appDataFolder();
     if (!QDir().exists(dir))
         QDir().mkpath(dir);
 
-    gDirs = std::make_unique<Dirs>();
     gDoc = std::make_unique<ProjectDocument>();
 
     MainWindow win;
diff --git a/GUI/View/Layout/ApplicationSettings.cpp b/GUI/View/Layout/ApplicationSettings.cpp
index 3165ce9c86ae1d0cd236248ef6e6e8f738733fe6..01b3b7a7dcf84ef048361d1328c2c6142ac5466a 100644
--- a/GUI/View/Layout/ApplicationSettings.cpp
+++ b/GUI/View/Layout/ApplicationSettings.cpp
@@ -28,12 +28,10 @@ const QString S_SINGLE_SAMPLE_MODE = "SingleSampleMode";
 
 } // namespace
 
-BA_GUI_API_ ApplicationSettings* gApp; //!< global pointer to _the_ instance
+BA_GUI_API_ std::unique_ptr<ApplicationSettings> gApp; //!< global pointer to _the_ instance
 
 ApplicationSettings::ApplicationSettings()
 {
-    gApp = this;
-
     QFile base(":/styles/Base.stylesheet");
     base.open(QFile::ReadOnly);
     QString stylesheet = base.readAll();
diff --git a/GUI/View/Layout/ApplicationSettings.h b/GUI/View/Layout/ApplicationSettings.h
index 5a486458233de07ab61182da7c5597a3073ef03c..3e0b676351f556f39118fa89d37ba06a111d2748 100644
--- a/GUI/View/Layout/ApplicationSettings.h
+++ b/GUI/View/Layout/ApplicationSettings.h
@@ -33,6 +33,6 @@ public:
     QString xml_dir;
 };
 
-BA_GUI_API_ extern ApplicationSettings* gApp; //!< global pointer to the single instance
+BA_GUI_API_ extern std::unique_ptr<ApplicationSettings> gApp; //!< global pointer to _the_ instance
 
 #endif // BORNAGAIN_GUI_VIEW_LAYOUT_APPLICATIONSETTINGS_H