diff --git a/JamiInstaller/Product.wxs b/JamiInstaller/Product.wxs
index b8a9f1124787dbf9f2397a0a06777eeda38244e9..fe6a02bd955103e9c0fd1eec357b06d88a985104 100644
--- a/JamiInstaller/Product.wxs
+++ b/JamiInstaller/Product.wxs
@@ -40,6 +40,12 @@
 
     <CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER" ExeCommand="cmd /c &quot;del vc_redist.x64.exe; del uninstall.exe; del WinSparkle.dll;&quot;" Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" />
 
+    <Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM QtWebEngineProcess.exe /IM Jami.exe'/>
+    <CustomAction Id="JamiProcesses.TaskKill"
+                  BinaryKey="WixCA"
+                  DllEntry="CAQuietExec"
+                  Execute="immediate"
+                  Return="ignore"/>
   </Product>
 
   <Fragment Id="DirectoryStructure">
@@ -51,6 +57,7 @@
       <Directory Id="ProgramMenuFolder">
         <Directory Id="ApplicationProgramsFolder" />
       </Directory>
+      <Directory Id="WindowsFolder" Name="WINDOWS"/>
     </Directory>
   </Fragment>
 
@@ -104,6 +111,7 @@
       </InstallUISequence>
     </UI>
     <InstallExecuteSequence>
+      <Custom Action='JamiProcesses.TaskKill' Before='InstallValidate'/>
       <Custom Action="removeOldJamiFiles" After="RemoveFiles" />
       <Custom Action="LaunchApplication_nonUI" After="InstallFinalize"> WIXNONUILAUNCH </Custom>
       <Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" />
diff --git a/src/utils.cpp b/src/utils.cpp
index c4322012fe75940deb28acde71cf34236a913e8f..66e93111fbc44b19266c0962b92129ba0e3a4950 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -35,6 +35,7 @@
 #include "networkmanager.h"
 #include "updateconfirmdialog.h"
 #include "version.h"
+#include "mainwindow.h"
 
 #include <globalinstances.h>
 #include <qrencode.h>
@@ -439,12 +440,13 @@ Utils::applyUpdates(bool updateToBeta, QWidget* parent)
             }
             auto args = QString(" /passive /norestart WIXNONUILAUNCH=1");
             auto dir = Utils::WinGetEnv("TEMP");
-            auto cmd = "powershell " + QString(dir) + "\\" + downloadPath.fileName()
-                + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args;
-            auto retq = QProcess::startDetached(cmd);
-            if (retq) {
-                QCoreApplication::exit();
-            }
+            auto cmdStartInstaller = "powershell " + QString(dir) + "\\" + downloadPath.fileName()
+                                     + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args;
+
+            MainWindow::instance().close();
+            LRCInstance::instance().reset();
+
+            QProcess::startDetached(cmdStartInstaller);
         });
 }