diff --git a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
index c89adb98b1243722541ae8ed799ce3fd6172c165..23000c0dd31bf35bc8393cc5b082e6fc69b288a4 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
+++ b/Code/Mantid/MantidQt/CustomInterfaces/inc/MantidQtCustomInterfaces/MultiDatasetFit/MultiDatasetFit.h
@@ -56,7 +56,7 @@ public:
   /// Destructor
   ~MultiDatasetFit();
   /// Get the name of the output workspace
-  QString getOutputWorkspaceName() const {return QString::fromStdString(m_outputWorkspaceName);}
+  QString getOutputWorkspaceName() const;
   /// Workspace name for the i-th spectrum
   std::string getWorkspaceName(int i) const;
   /// Workspace index of the i-th spectrum
@@ -90,6 +90,7 @@ private slots:
   void enableRange();
   void checkFittingType();
   void setLogNames();
+  void invalidateOutput();
 
 protected:
   virtual void initLayout();
diff --git a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
index a8d5f4f86c76c36ba01a247d352fab6555c62b72..f01eef28c0a5896285e356750df574f41f4f5db4 100644
--- a/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
+++ b/Code/Mantid/MantidQt/CustomInterfaces/src/MultiDatasetFit/MultiDatasetFit.cpp
@@ -76,6 +76,7 @@ void MultiDatasetFit::initLayout()
   connect(m_dataController,SIGNAL(dataTableUpdated()),m_plotController,SLOT(tableUpdated()));
   connect(m_dataController,SIGNAL(dataSetUpdated(int)),m_plotController,SLOT(updateRange(int)));
   connect(m_dataController,SIGNAL(dataTableUpdated()),this,SLOT(setLogNames()));
+  connect(m_dataController,SIGNAL(dataTableUpdated()),this,SLOT(invalidateOutput()));
   connect(m_plotController,SIGNAL(fittingRangeChanged(int, double, double)),m_dataController,SLOT(setFittingRange(int, double, double)));
   connect(m_uiForm.cbShowDataErrors,SIGNAL(toggled(bool)),m_plotController,SLOT(showDataErrors(bool)));
   connect(m_uiForm.btnToVisibleRange,SIGNAL(clicked()),m_plotController,SLOT(resetRange()));
@@ -150,6 +151,12 @@ void MultiDatasetFit::createPlotToolbar()
 
 }
 
+/// Get the name of the output workspace
+QString MultiDatasetFit::getOutputWorkspaceName() const
+{
+  return QString::fromStdString(m_outputWorkspaceName);
+}
+
 /// Create a multi-domain function to fit all the spectra in the data table.
 boost::shared_ptr<Mantid::API::IFunction> MultiDatasetFit::createFunction() const
 {
@@ -236,7 +243,14 @@ void MultiDatasetFit::fitSimultaneous()
       fit->setPropertyValue("Output",m_outputWorkspaceName);
       m_fitOptionsBrowser->setProperty("Output","out");
     }
-    m_outputWorkspaceName += "_Workspaces";
+    if (n == 1)
+    {
+      m_outputWorkspaceName += "_Workspace";
+    }
+    else
+    {
+      m_outputWorkspaceName += "_Workspaces";
+    }
 
     m_fitRunner.reset( new API::AlgorithmRunner() );
     connect( m_fitRunner.get(),SIGNAL(algorithmComplete(bool)), this, SLOT(finishFit(bool)), Qt::QueuedConnection );
@@ -599,5 +613,13 @@ void MultiDatasetFit::setLogNames()
   }
 }
 
+/// Invalidate the previous fit output
+void MultiDatasetFit::invalidateOutput()
+{
+  m_outputWorkspaceName = "";
+  m_plotController->clear();
+  m_plotController->update();
+}
+
 } // CustomInterfaces
 } // MantidQt