diff --git a/src/backend/backend.cpp b/src/backend/backend.cpp
index f972c466c8c4dbd3c09f3442ed006fc6bb95970f..fe564c38de0f8edaf413a4cf08a05e26460bc659 100644
--- a/src/backend/backend.cpp
+++ b/src/backend/backend.cpp
@@ -261,7 +261,7 @@ void Backend::runProject(const QString &id, const QByteArray &projectData)
             QMetaObject::invokeMethod(m_dsManager.get(), "sendProjectStopped", Q_ARG(QString, id));
         else {
             QMetaObject::invokeMethod(m_projectManager.get(), "showAppWindow");
-            QMetaObject::invokeMethod(m_dsManager.get(), "sendProjectRunning", Q_ARG(QString, id));
+            QMetaObject::invokeMethod(m_dsManager.get(), "sendProjectStarted", Q_ARG(QString, id));
         }
 
         emit popupClose();
diff --git a/src/backend/main.cpp b/src/backend/main.cpp
index ee4a439c0da40ff739d345952450c9a61846dce0..3c4bc110027bd544fc218c6dff8c3c604804fb66 100644
--- a/src/backend/main.cpp
+++ b/src/backend/main.cpp
@@ -50,6 +50,7 @@ int main(int argc, char *argv[])
 #ifdef Q_OS_ANDROID
     view.showMaximized();
 #else
+    QApplication::setWindowIcon(QIcon(QStringLiteral(":/images/appicon.svg")));
     view.show();
 #endif
 
diff --git a/src/backend/projectmanager.cpp b/src/backend/projectmanager.cpp
index e3e785e08ee8eb337c7d8ff53b5f7ef1a6be1860..90a1e042850a368fdbb0499a1587e8f64ec0c178 100644
--- a/src/backend/projectmanager.cpp
+++ b/src/backend/projectmanager.cpp
@@ -287,6 +287,8 @@ bool ProjectManager::runProjectInternal(const QByteArray &project)
 
     qDebug() << "Setting up the quickWindow";
     m_quickWindow.reset(qobject_cast<QQuickWindow *>(topLevel));
+    m_quickWindow->setVisible(false);
+
     if (m_quickWindow) {
         qDebug() << "Running with incubator controller";
         m_qmlEngine->setIncubationController(m_quickWindow->incubationController());
@@ -388,7 +390,7 @@ void ProjectManager::showAppWindow()
 
 void ProjectManager::stopProject()
 {
-    if (!m_quickWindow || !m_quickWindow->isVisible())
+    if (!m_quickWindow)
         return;
 
     qDebug("Stopping the QML app window");
diff --git a/tests/tst_projectmanager.cpp b/tests/tst_projectmanager.cpp
index 6dac396ade9f70d2802ae38d2f25679530e93322..1be6c918c8a96810aa469cd5b1931f98ec2049e7 100644
--- a/tests/tst_projectmanager.cpp
+++ b/tests/tst_projectmanager.cpp
@@ -44,6 +44,8 @@ void TestProjectManager::testStopProject()
     projectManager.stopProject();
     QVERIFY(projectManager.sessionId().isEmpty());
     QVERIFY(projectManager.m_quickWindow.isNull());
+    QVERIFY(projectManager.m_qmlEngine.isNull());
+    QVERIFY(projectManager.m_qmlComponent.isNull());
 }
 
 void TestProjectManager::testRegisterResource()
@@ -119,7 +121,7 @@ void TestProjectManager::testRunProjectInternal()
     QVERIFY(projectManager.m_qmlEngine);
     QVERIFY(projectManager.m_qmlComponent);
     QVERIFY(projectManager.m_quickWindow);
-    QVERIFY(projectManager.m_quickWindow->isVisible());
+    QVERIFY(projectManager.m_quickWindow->isVisible() == false);
 }
 
 void TestProjectManager::testFindFile()
@@ -202,6 +204,8 @@ void TestProjectManager::testShowAppWindow()
     ProjectManager projectManager;
 
     projectManager.runProject(m_projectThatCanRun, true, "sessionId");
+    QVERIFY(projectManager.m_quickWindow->isVisible() == false);
 
+    projectManager.showAppWindow();
     QVERIFY(projectManager.m_quickWindow->isVisible());
 }