diff --git a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
index efe463399b269024d82f90ea2e4b40e29dbcebaf..100545dca0823b41cd1601027a68ed474ceca294 100644
--- a/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
+++ b/Code/Mantid/Framework/DataObjects/inc/MantidDataObjects/MaskWorkspace.h
@@ -55,7 +55,7 @@ namespace DataObjects
     bool hasInstrument();
 
     /// Flag for having a REAL intrument associated
-    bool m_hasInstrument;
+    mutable bool m_hasInstrument;
   };
 
   ///shared pointer to the MaskWorkspace class
diff --git a/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp b/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
index 6dfa2d95c9434a5ab69066a61ccaf57cb621e5b6..644f686d7aaa076706c47302fa37168b8e44653a 100644
--- a/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
+++ b/Code/Mantid/Framework/DataObjects/src/MaskWorkspace.cpp
@@ -106,7 +106,6 @@ namespace DataObjects
     size_t MaskWorkspace::getNumberMasked() const
     {
       // Determine whether has instrument or not
-      bool m_hasInstrument;
       Geometry::Instrument_const_sptr inst = getInstrument();
       if (inst)
       {
@@ -149,7 +148,6 @@ namespace DataObjects
     {
       set<detid_t> detIDs;
 
-      bool m_hasInstrument = false;
       Geometry::Instrument_const_sptr inst = this->getInstrument();
       if (inst) m_hasInstrument = true;
 
diff --git a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
index f6f6d2b2268d17f71327b3780f973abc11e8aa90..603f5bebec4860d904937f7b91fa002fb772c1b7 100644
--- a/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
+++ b/Code/Mantid/MantidPlot/src/Mantid/MantidDock.cpp
@@ -301,7 +301,15 @@ void MantidDockWidget::populateChildData(QTreeWidgetItem* item)
   }
   else
   {
-    QString details = workspace->toString().c_str();
+    QString details;
+    try
+    {
+      details = workspace->toString().c_str();
+    }
+    catch(std::runtime_error& e)
+    {
+      details = QString("Error: %1").arg(e.what());
+    }
     QStringList rows = details.split(QLatin1Char('\n'), QString::SkipEmptyParts);
     rows.append(QString("Memory used: ") + workspace->getMemorySizeAsStr().c_str());