diff --git a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
index 6c4729b2249ea35ffdaf4b4ac0871446e13418c5..7694532546bc060e37a36bc4dbdb5dcd688403f9 100644
--- a/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
+++ b/MantidQt/CustomInterfaces/src/Muon/MuonAnalysis.cpp
@@ -1989,36 +1989,32 @@ void MuonAnalysis::plotSpectrum(const QString& wsName, bool logScale)
       hideAllPlotWindows();
     }
 
+    QStringList& s = acquireWindowScript; // To keep short
+    s << "ws = mtd['%WSNAME%']";
+    s << "altName = ws.name() + '-1'";
+
     if ( policy == MuonAnalysisOptionTab::PreviousWindow )
     {
-      QStringList& s = acquireWindowScript; // To keep short
-
-      s << "ew = graph('%WSNAME%-1')";
+      s << "ew = graph(altName)";
       s << "if '%WSNAME%' != '%PREV%' and ew != None:";
       s << "    ew.close()";
 
       s << "pw = graph('%PREV%-1')";
       s << "if pw == None:";
-      s << "  pw = newGraph('%WSNAME%-1', 0)";
-
-      s << "w = plotSpectrum('%WSNAME%', 0, %ERRORS%, %CONNECT%, window = pw, clearWindow = True)";
-      s << "w.setName('%WSNAME%-1')";
-      s << "w.setObjectName('%WSNAME%')";
-      s << "w.show()";
-      s << "w.setFocus()";
+      s << "  pw = newGraph(altName, 0)";
     }
     else if ( policy == MuonAnalysisOptionTab::NewWindow )
     {
-      QStringList& s = acquireWindowScript; // To keep short
-
-      s << "pw = newGraph('%WSNAME%-1', 0)";
-      s << "w = plotSpectrum('%WSNAME%', 0, %ERRORS%, %CONNECT%, window = pw, clearWindow = True)";
-      s << "w.setName('%WSNAME%-1')";
-      s << "w.setObjectName('%WSNAME%')";
-      s << "w.show()";
-      s << "w.setFocus()";
+      s << "pw = newGraph(altName, 0)";
     }
 
+    s << "w = plotSpectrum(ws.name(), 0, %ERRORS%, %CONNECT%, window = pw, "
+      "clearWindow = True)";
+    s << "w.setName(altName)";
+    s << "w.setObjectName(ws.name())";
+    s << "w.show()";
+    s << "w.setFocus()";
+
     QString pyS;
 
     // Add line separators
@@ -2028,17 +2024,17 @@ void MuonAnalysis::plotSpectrum(const QString& wsName, bool logScale)
     const QMap<QString, QString>& params = getPlotStyleParams(wsName);
 
     // Insert real values
-    pyS.replace("%WSNAME%", wsName);
+    QString safeWSName(wsName);
+    safeWSName.replace("'", "\'");
+    pyS.replace("%WSNAME%", safeWSName);
     pyS.replace("%PREV%", m_currentDataName);
     pyS.replace("%ERRORS%", params["ShowErrors"]);
     pyS.replace("%CONNECT%", params["ConnectType"]);
 
     // Update titles
     pyS += "l = w.activeLayer()\n"
-           "l.setCurveTitle(0, '%1')\n"
-           "l.setTitle('%2')\n";
-
-    pyS = pyS.arg(wsName).arg(m_title.c_str());
+           "l.setCurveTitle(0, ws.name())\n"
+           "l.setTitle(ws.getTitle())\n";
 
     // Set logarithmic scale if required
     if ( logScale )