diff --git a/common/config.js b/common/config.js
index 21ca9c8950f2bed40a71d393e69b43f16b4f8660..18263cb1922a00fb0a942bf2d828bafd0dceac4f 100644
--- a/common/config.js
+++ b/common/config.js
@@ -37,10 +37,30 @@ var config = {
         this.database = __config.database.path;
         this.host = __config.lektord.host;
         this.port = __config.lektord.port;
+        this.attachmode = __config.lektord.attach;
         this.loglevel = __config.log.level;
         this.loglektord = __config.log.lektord;
 
         fs.writeFileSync(__configFile, ini.stringify(__config));
+
+        this.flush();
+    },
+    flush() {
+        const __config = {
+            database: {
+                path: this.database,
+            },
+            lektord: {
+                host: this.host,
+                port: this.port,
+                attach: this.attachmode,
+            },
+            log: {
+                level: this.loglevel,
+                lektord: this.loglektord,
+            },
+        };
+        fs.writeFileSync(__configFile, ini.stringify(__config));
     },
 };
 
diff --git a/instance/index.html b/instance/index.html
index 04701552b834ae6a5c91a9cac2f81f5ea5619005..cfc848e92a1da0558f857a6caeaf3893e1025dd1 100644
--- a/instance/index.html
+++ b/instance/index.html
@@ -67,7 +67,7 @@
                             <fieldset class="form-group">
                                 <div class="row">
                                     <legend class="col-form-label col-sm-2 pt-0">Log level</legend>
-                                    <div class="col-sm-10">
+                                    <div class="col-sm-10" id="inputLogLevel">
                                         <div class="form-check">
                                             <input
                                                 class="form-check-input"
@@ -84,10 +84,10 @@
                                                 class="form-check-input"
                                                 type="radio"
                                                 name="gridRadios"
-                                                id="logWARNINGS"
-                                                value="WARNINGS"
+                                                id="logWARNING"
+                                                value="WARNING"
                                             />
-                                            <label class="form-check-label" for="logWARNINGS">Warnings</label>
+                                            <label class="form-check-label" for="logWARNING">Warning</label>
                                         </div>
                                         <div class="form-check">
                                             <input
diff --git a/instance/main.js b/instance/main.js
index cd163b18ded4c253f12d22937ef0adea144b8fda..8b0dc0ea7d990fe7691238add7558355a53b86b0 100644
--- a/instance/main.js
+++ b/instance/main.js
@@ -43,10 +43,27 @@ function autoFillSettings() {
     $('#inputPort').val(config.port);
     $('#inputAttachMode').prop('checked', true);
     $('#inputDbPath').val(config.database);
-    $('#inputLogLektord').val(config.loglektord);
+    $('#inputLogLektord').prop('checked', config.loglektord);
     $(`#log${config.loglevel.toUpperCase()}`).prop('checked', true);
 }
 
+function flushFillSettings() {
+    const set = {
+        host: $('#inputHost').val(),
+        port: $('#inputPort').val(),
+        attachmode: $('#inputAttachMode').prop('checked'),
+        db: $('#inputDbPath').val(),
+        loglektord: $('#inputLogLektord').prop('checked'),
+        loglevel: {
+            ERROR: $('#logERROR').prop('checked'),
+            WARNING: $('#logWARNING').prop('checked'),
+            INFO: $('#logINFO').prop('checked'),
+            DEBUG: $('#logDEBUG').prop('checked'),
+        },
+    };
+    ipcRenderer.send('set-settings', set);
+}
+
 window.onload = () => {
     createButtonList(buttonList);
 
@@ -151,6 +168,7 @@ function createButtonList(list) {
 
     span.onclick = function () {
         modal.style.display = 'none';
+        flushFillSettings();
     };
 
     window.onclick = function (event) {
diff --git a/main.js b/main.js
index 7cd3f73d65f3ffa599cc2e29dcbc62dad19b5fa9..68b997f9a5c77aea2ccbfce9b74c74e2b0cd6aed 100644
--- a/main.js
+++ b/main.js
@@ -252,3 +252,20 @@ ipcMain.on('get-song-time-data', (event, arg) => {
         });
     }
 });
+
+ipcMain.on('set-settings', (event, arg) => {
+    logger.info('main', `Settings are now: ${JSON.stringify(arg)}`);
+    config.host = arg.host;
+    config.port = arg.port;
+    config.database = arg.db;
+    config.loglektord = arg.loglektord;
+    config.attachmode = arg.attachmode;
+
+    /* prettier-ignore */
+    config.loglevel = arg.loglevel.ERROR   ? 'error'
+                    : arg.loglevel.WARNING ? 'warning'
+                    : arg.loglevel.INFO    ? 'info'
+                    :                        'debug';
+
+    config.flush();
+});