diff --git a/src/gui/widgets/main_window.py b/src/gui/widgets/main_window.py
index 9b052e8c9..cd4406a2c 100644
--- a/src/gui/widgets/main_window.py
+++ b/src/gui/widgets/main_window.py
@@ -1111,8 +1111,8 @@ def purgeBeforeRunning(self, default=True):
                     self.mainWidget,
                     "GudPy Error", "Couldn't find purge_det binary."
                 )
-            self.setControlsEnabled(True)
-            return
+                self.setControlsEnabled(True)
+                return
         else:
             self.runPurge_()
         dcs = self.gudrunFile.dcs(
@@ -1129,6 +1129,7 @@ def purgeBeforeRunning(self, default=True):
                 self.mainWidget, "GudPy Error",
                 "Couldn't find gudrun_dcs binary."
             )
+            self.setControlsEnabled(True)
             return
         self.queue.put((dcs, self.progressDCS, func, args))
 
@@ -1593,8 +1594,6 @@ def procFinished(self):
             self.error = ""
             self.queue = Queue()
         if not self.queue.empty():
-            self.makeProc(*self.queue.get())
-        else:
             if self.warning:
                 QMessageBox.warning(
                     self.mainWidget, "GudPy Warning",
@@ -1619,6 +1618,8 @@ def procFinished(self):
         self.output = ""
         self.mainWidget.currentTaskLabel.setText("No task running.")
         self.mainWidget.progressBar.setValue(0)
+        if not self.queue.empty():
+            self.makeProc(*self.queue.get())
 
     def stopProc(self):
         self.queue = Queue()