diff --git a/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp b/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
index f6779ab1f7040784e3e15f6a47177d9a8c668d51..48cca29fd123a2ad9211a727bbf47a48e0bf5836 100644
--- a/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
+++ b/MantidPlot/src/ProjectRecoveryGUIs/ProjectRecoveryPresenter.cpp
@@ -44,8 +44,8 @@ ProjectRecoveryPresenter::~ProjectRecoveryPresenter() {
 
 bool ProjectRecoveryPresenter::startRecoveryView() {
   try {
-    m_openView = RecoveryView;
     m_recView = new ProjectRecoveryView(m_mainWindow, this);
+    m_openView = RecoveryView;
     m_recView->exec();
   } catch (...) {
     return true;
@@ -65,8 +65,8 @@ bool ProjectRecoveryPresenter::startRecoveryView() {
 
 bool ProjectRecoveryPresenter::startRecoveryFailure() {
   try {
-    m_openView = FailureView;
     m_failureView = new RecoveryFailureView(m_mainWindow, this);
+    m_openView = FailureView;
     m_failureView->exec();
   } catch (...) {
     return true;
@@ -182,4 +182,9 @@ void ProjectRecoveryPresenter::changeStartMantidToCancelLabel() {
   }
 }
 
-void ProjectRecoveryPresenter::fillAllRows() { m_model->fillRows(); }
\ No newline at end of file
+void ProjectRecoveryPresenter::fillAllRows() {
+  // Only allow this to run once, first run will have value RecoveryView
+  if (m_openView == RecoveryView) {
+    m_model->fillRows();
+  }
+}
\ No newline at end of file