diff --git a/common/lkt.js b/common/lkt.js
index 41b7e8698a5b81e19957c6f109e1fe77300c7dab..6fb2163f73d356ad3c231580fb474f11bd482a06 100644
--- a/common/lkt.js
+++ b/common/lkt.js
@@ -135,6 +135,14 @@ class LktClient {
         return __getResult(client);
     }
 
+    static reloadState() {
+        LktClient.commandStatus().then(data => {
+            LktClient.__status = data;
+            LktClient.status_updated = true;
+            logger.debug('lkt', `Got update in status ${JSON.stringify(data)}`);
+        });
+    }
+
     static idleActualisation() {
         var client = new this();
         client.m_socket.setTimeout(0);
@@ -144,6 +152,9 @@ class LktClient {
                     if (String(data).includes('playlist')) {
                         LktClient.setQueueUpdated(true);
                     }
+                    if (String(data).includes('player')) {
+                        LktClient.reloadState();
+                    }
                     client.m_socket.write(`idle\n`);
                     return null;
                 });
@@ -244,12 +255,21 @@ class LktClient {
         return this.queue_updated;
     }
 
+    static isStatusUpdated() {
+        return this.status_updated;
+    }
+
     static timeData = { elapsed: 0, total: 100, state: 'stop', song: 0 };
 
     static setPlayState(state) {
         this.timeData.state = state;
     }
 
+    static getStatus() {
+        LktClient.status_updated = false;
+        return this.__status;
+    }
+
     static setSongTimeData(elapsed, total, state, song) {
         this.timeData = {
             elapsed: elapsed,
diff --git a/instance/main.js b/instance/main.js
index a026754744e16412dad65612965af0a4e42a55e4..2d9d0d20529a40105361ea9f9e66af15a55d9ffd 100644
--- a/instance/main.js
+++ b/instance/main.js
@@ -180,7 +180,7 @@ ipcRenderer.on('send-lektord', (event, state) => {
     setInterval(() => ipcRenderer.send('verify-queue-reloaded-request'), 50);
     setInterval(() => ipcRenderer.send('get-song-time-data'), 50);
     setInterval(() => ipcRenderer.send('get-runnings'), 10000);
-    setInterval(() => ipcRenderer.send('verify-state'), 500);
+    setInterval(() => ipcRenderer.send('verify-state'), 50);
 });
 
 ipcRenderer.on('send-state', (event, state) => updatePlayPauseButton(state));
diff --git a/main.js b/main.js
index 4c8592367f8e5e6bad35dac2faa52222390dafe0..0740484d72854efae395a582f3faba1b4bb5ae1f 100644
--- a/main.js
+++ b/main.js
@@ -280,10 +280,15 @@ ipcMain.on('add-kara-queue-pos', (event, addparams) => {
     lkt.commandQueueAddId(addparams.id).then(() => lkt.commandMove(addparams.queueSize + 1, addparams.position));
 });
 
-ipcMain.on('verify-state', (event, arg) => lkt.commandStatus().then(data => event.reply('send-state', data.state)));
+ipcMain.on('verify-state', (event, arg) => {
+    if (lkt.isStatusUpdated()) {
+        event.reply('send-state', lkt.getStatus().state);
+    }
+});
 
 ipcMain.on('verify-lektord', (event, arg) => {
     lkt.ping().then(data => {
+        lkt.reloadState();
         event.reply('send-lektord');
     });
 });