diff --git a/src/klkt/klkt.hpp b/src/klkt/klkt.hpp
index df5a824e35993aa4f1223240c7aacc5ea49304df..c282e1648746ea7f98b8bb5b352ae2248c63dc7f 100644
--- a/src/klkt/klkt.hpp
+++ b/src/klkt/klkt.hpp
@@ -297,8 +297,8 @@ private slots:
 
         for (auto &line : lines) {
             return_position = line.length() + 1;
-            m_pending_data = m_pending_data.right(m_pending_data.length() - return_position);
-            if (line == "OK") {
+            m_pending_data  = m_pending_data.right(m_pending_data.length() - return_position);
+            if (line == "OK" || line.left(3) == "ACK") {
                 m_sock.close();
                 return;
             }
@@ -328,8 +328,8 @@ private slots:
 
         for (const auto &line : lines) {
             return_position = line.length() + 1;
-            m_pending_data = m_pending_data.right(m_pending_data.length() - return_position);
-            if (line == "OK") {
+            m_pending_data  = m_pending_data.right(m_pending_data.length() - return_position);
+            if (line == "OK" || line.left(3) == "ACK") {
                 /* Read the current song if needed */
                 if (m_state == "play") {
                     QWidget::disconnect(m_connect_read);
@@ -408,7 +408,7 @@ private:
         connect(&m_sock, &Socket::readyRead,    this, [&]() {
             QStringList lines = QTextCodec::codecForMib(UTF8_MIB)->toUnicode(m_sock.readAll()).split("\n");
             for (auto &line : lines) {
-                if (line == "OK") {
+                if (line == "OK" || line.left(3) == "ACK") {
                     m_sock.close();
                     emit finished();
                     return;