diff --git a/src/backend.cpp b/src/backend.cpp
index 639f3ea2a808d079f791381e5c32c6828407689f..c8dee26ab7440302ea5057b93529558eba37b309 100644
--- a/src/backend.cpp
+++ b/src/backend.cpp
@@ -288,9 +288,6 @@ void Backend::openCamera()
 
 void Backend::initializeProjectManager()
 {
-    if (m_projectManager)
-        return;
-
     m_projectManager.reset(new ProjectManager(autoScaleProject()));
     connect(m_projectManager.data(), &ProjectManager::closingProject, this, [&] {
         emit popupClose();
@@ -307,6 +304,13 @@ void Backend::initDesignStudioConnector()
             this,
             &Backend::networkUpdated);
 
+    connect(m_designStudioConnector.data(), &DesignStudioConnector::projectIncoming, this, [&] {
+        qDebug() << "Project incoming from Design Studio";
+        m_projectManager.reset();
+        emit popupOpen();
+        updatePopup("Receiving project...");
+    });
+
     connect(m_designStudioConnector.data(),
             &DesignStudioConnector::projectReceived,
             this,
@@ -336,6 +340,7 @@ void Backend::initDesignStudioConnector()
                 }
 
                 emit popupClose();
+                m_designStudioConnector->sendProjectReceived();
             });
 
     qDebug() << "Design Studio Connector is initialized";
diff --git a/src/dsConnector.cpp b/src/dsConnector.cpp
index b5cf944fa5975664728adf5cbf6a58cc03e8981a..f808d5d1bf964d3d15503054b743d1691353f825 100644
--- a/src/dsConnector.cpp
+++ b/src/dsConnector.cpp
@@ -42,6 +42,7 @@ void DesignStudioConnector::receiveProject()
         m_projectData.clear();
         m_projectData.append(data);
         m_receivingData = true;
+        emit projectIncoming();
     } else if (m_receivingData) {
         if (data.contains("::qmlrc-end::")) {
             qDebug() << "TCP:: Received project end delimeter";
@@ -111,3 +112,14 @@ void DesignStudioConnector::updateIpv4Addr()
     emit networkStatusUpdated("\nLocal IP: " + m_ipv4Addr
                               + "\nWaiting for Design Studio to connect...");
 }
+
+void DesignStudioConnector::sendProjectReceived()
+{
+    if (!m_tcpSocket) {
+        qDebug() << "TCP:: Socket is not connected";
+        return;
+    }
+
+    m_tcpSocket->write("::qmlrc-received::");
+    m_tcpSocket->flush();
+}
diff --git a/src/dsConnector.h b/src/dsConnector.h
index d9fb0b67cd86cbbd472bfff3544fa5159265e06f..2a5c193b045310f8c51820b30ad0b44ad8984e9c 100644
--- a/src/dsConnector.h
+++ b/src/dsConnector.h
@@ -38,6 +38,8 @@ class DesignStudioConnector : public QObject
 public:
     explicit DesignStudioConnector(QObject *parent = nullptr);
 
+    void sendProjectReceived();
+
 private:
     // Tcp connection members
     QTcpServer m_tcpServer;
@@ -60,6 +62,7 @@ private:
 signals:
     void networkStatusUpdated(QString);
     void projectReceived(QByteArray);
+    void projectIncoming();
 };
 
 #endif // DSCONNECTOR_H