diff --git a/MantidPlot/src/ApplicationWindow.cpp b/MantidPlot/src/ApplicationWindow.cpp
index 251d4e5ae545d5362e6b2e4bf62a76d578c6cc7c..451a8342fff1148fbf11a14bcfa54bc1a15d584c 100644
--- a/MantidPlot/src/ApplicationWindow.cpp
+++ b/MantidPlot/src/ApplicationWindow.cpp
@@ -16740,7 +16740,7 @@ bool ApplicationWindow::isOfType(const QObject *obj,
   return strcmp(obj->metaObject()->className(), toCompare) == 0;
 }
 
-void ApplicationWindow::saveProjectRecovery(const std::string destination) {
+void ApplicationWindow::saveProjectRecovery(std::string destination) {
   const bool isRecovery = true;
   ProjectSerialiser projectWriter(this, isRecovery);
   projectWriter.save(QString::fromStdString(destination));
diff --git a/MantidPlot/src/ApplicationWindow.h b/MantidPlot/src/ApplicationWindow.h
index 1493b742cbe4a58353ca6ec893310924ab25b0f7..6d26102ef031883fd469c16ba21581d21c0a1b21 100644
--- a/MantidPlot/src/ApplicationWindow.h
+++ b/MantidPlot/src/ApplicationWindow.h
@@ -1123,7 +1123,9 @@ public slots:
 
   bool isOfType(const QObject *obj, const char *toCompare) const;
 
-  void saveProjectRecovery(const std::string destination);
+  // Note: The string must be copied from the other thread in saveProjectRecovery
+  /// Saves the current project as part of recovery auto saving
+  void saveProjectRecovery(std::string destination); 
 
 signals:
   void modified();