diff --git a/src/backend/backend.cpp b/src/backend/backend.cpp
index cfebb45be85fcc6ff2bcc898094a45a806f6135e..78f62a70ed7a021b6a2b097af263a24d6987e768 100644
--- a/src/backend/backend.cpp
+++ b/src/backend/backend.cpp
@@ -83,6 +83,7 @@ Backend::Backend(QObject *parent)
                     if (m_projectManager && !m_projectManager->sessionId().isEmpty())
                         QMetaObject::invokeMethod(m_projectManager.get(), "stopProject");
                     m_dsManager->disconnectAllDesignStudios();
+                    popupClose();
                 }
             });
 
diff --git a/src/backend/dsconnector/ds.cpp b/src/backend/dsconnector/ds.cpp
index d8ad95b15a3b5d143143429c9f326c9d51ce1661..ba39bd50bd26659bf347fb1c51380f4aa37518ae 100644
--- a/src/backend/dsconnector/ds.cpp
+++ b/src/backend/dsconnector/ds.cpp
@@ -38,7 +38,6 @@ DesignStudio::DesignStudio(QWebSocket *socket, const QString &deviceID, QObject
         qDebug() << "Project is stalled. Closing the connection.";
         m_socket->close();
         m_socket->abort();
-        emit disconnected(m_designStudioID);
     });
 
     m_speedCalculator.setInterval(1000);
@@ -82,7 +81,6 @@ void DesignStudio::initPingPong()
                  << "is not responding. Closing the connection.";
         m_socket->close();
         m_socket->abort();
-        emit disconnected(m_designStudioID);
     });
 }
 
@@ -103,6 +101,9 @@ void DesignStudio::initSocket()
         qDebug() << "Design Studio" << m_designStudioID << "disconnected";
         m_pingTimer.stop();
         m_pongTimer.stop();
+        m_projectStallTimer.stop();
+        m_speedCalculator.stop();
+        m_projectData.clear();
         emit disconnected(m_designStudioID);
     });