diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp
index 54eefaba70c4c5426e8ad603fcbcdbec792865f6..33e8c18415170ceb79b221f76140d8398aef3da1 100644
--- a/src/pulsatingscience.cpp
+++ b/src/pulsatingscience.cpp
@@ -19,6 +19,8 @@
  ******************************************************************************/
 
 #include "pulsatingscience.h"
+#include <QSettings>
+
 
 #ifdef __APPLE__
 #include "/System/Library/Frameworks/Carbon.framework/Versions/A/Headers/Carbon.h"
@@ -110,6 +112,16 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent)
 
     connect(m_hiddenShortcut, SIGNAL(activated()),
             this, SLOT(toggleHiddenDemoMode()));
+
+    // restore previously saved window and splitter layout
+    QCoreApplication::setOrganizationName("Max-Planck-Insitut für Gravitationsphysik");
+    QCoreApplication::setOrganizationDomain("aei.mpg.de");
+    QCoreApplication::setApplicationName("Pulsating Science");
+    QSettings settings;
+
+    restoreGeometry(settings.value("windowGeometry").toByteArray());
+    restoreState(settings.value("windowState").toByteArray());
+    ui.splitter->restoreState(settings.value("splitterSizes").toByteArray());
 }
 
 PulsatingScience::~PulsatingScience()
@@ -161,6 +173,12 @@ void PulsatingScience::closeEvent(QCloseEvent *event)
         event->ignore();
     }
     else {
+        // save splitter layout
+        QSettings settings;
+        settings.setValue("windowGeometry", saveGeometry());
+        settings.setValue("windowState", saveState());
+        settings.setValue("splitterSizes", ui.splitter->saveState());
+
         event->accept();
     }
 }