diff --git a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceValidators.h b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceValidators.h
index 09a2a82af1fc77244e01d1b304187d13fe02652f..cee300775198ff69e51525eb063e989618caa797 100644
--- a/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceValidators.h
+++ b/Code/Mantid/Framework/API/inc/MantidAPI/WorkspaceValidators.h
@@ -4,13 +4,14 @@
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
-#include "MantidKernel/IValidator.h"
-#include "MantidAPI/Workspace.h"
 #include "MantidAPI/IEventWorkspace.h"
 #include "MantidAPI/MatrixWorkspace.h"
+#include "MantidAPI/Workspace.h"
+#include "MantidKernel/CompositeValidator.h"
+#include "MantidKernel/IValidator.h"
 #include <boost/shared_ptr.hpp>
-#include <vector>
 #include <numeric>
+#include <vector>
 
 namespace Mantid
 {
@@ -45,65 +46,8 @@ namespace API
     Code Documentation is available at: <http://doxygen.mantidproject.org>
 */
 template <typename TYPE = MatrixWorkspace>
-class DLLExport CompositeValidator : public Kernel::IValidator<boost::shared_ptr<TYPE> >
+class DLLExport CompositeWorkspaceValidator : public Kernel::CompositeValidator<boost::shared_ptr<TYPE> >
 {
-public:
-  CompositeValidator() {}
-
-  virtual ~CompositeValidator()
-  {
-    for (unsigned int i=0; i < m_children.size(); ++i)
-    {
-      delete m_children[i];
-    }
-    m_children.clear();
-  }
-
-  // IValidator methods
-  ///Gets the type of the validator
-  std::string getType() const { return "composite"; }
-
-  Kernel::IValidator<boost::shared_ptr<TYPE> >* clone()
-  {
-    CompositeValidator<TYPE>* copy = new CompositeValidator<TYPE>();
-    for (unsigned int i=0; i < m_children.size(); ++i)
-    {
-      copy->add( m_children[i]->clone() );
-    }
-    return copy;
-  }
-
-  /** Adds a validator to the group of validators to check
-   *  @param child :: A pointer to the validator to add
-   */
-  void add(Kernel::IValidator<boost::shared_ptr<TYPE> >* child)
-  {
-    m_children.push_back(child);
-  }
-
-private:
-  /// Private Copy constructor: NO DIRECT COPY ALLOWED
-  CompositeValidator(const CompositeValidator&);
-
-  /** Checks the value of all child validators. Fails if any child fails.
-   *  @param value :: The workspace to test
-   *  @return A user level description of the first problem it finds otherwise ""
-   */
-  std::string checkValidity( const boost::shared_ptr<TYPE>& value ) const
-  {
-    //Go though all the validators
-    for (unsigned int i=0; i < m_children.size(); ++i)
-    {
-      std::string error = m_children[i]->isValid(value);
-      //exit on the first error, to avoid passing doing more tests on invalid objects that could fail
-      if (error != "") return error;
-    }
-    //there were no errors
-    return "";
-  }
-
-  /// A container for the child validators
-  std::vector<Kernel::IValidator<boost::shared_ptr<TYPE> >*> m_children;
 };
 
 
diff --git a/Code/Mantid/Framework/Algorithms/CMakeLists.txt b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
index cce2d59e77a3a086caa5c518c5e1199d0bcf5859..c7cf969d185c461fb3d36e2bd48c6597126de0d9 100644
--- a/Code/Mantid/Framework/Algorithms/CMakeLists.txt
+++ b/Code/Mantid/Framework/Algorithms/CMakeLists.txt
@@ -52,6 +52,7 @@ set ( SRC_FILES
 	src/DiffractionFocussing2.cpp
 	src/Divide.cpp
 	src/DspacemaptoCal.cpp
+	src/Dummy.cpp
 	src/EQSANSResolution.cpp
 	src/EQSANSTofStructure.cpp
 	src/EditTOFPowderDiffractomerGeometry.cpp
@@ -213,6 +214,7 @@ set ( INC_FILES
 	inc/MantidAlgorithms/DiffractionFocussing2.h
 	inc/MantidAlgorithms/Divide.h
 	inc/MantidAlgorithms/DspacemaptoCal.h
+	inc/MantidAlgorithms/Dummy.h
 	inc/MantidAlgorithms/EQSANSResolution.h
 	inc/MantidAlgorithms/EQSANSTofStructure.h
 	inc/MantidAlgorithms/EditTOFPowderDiffractomerGeometry.h
@@ -371,6 +373,7 @@ set ( TEST_FILES
 	test/DiffractionFocussing2Test.h
 	test/DivideTest.h
 	test/DspacemaptoCalTest.h
+	test/DummyTest.h
 	test/EditTOFPowderDiffractomerGeometryTest.h
 	test/ExponentialCorrectionTest.h
 	test/ExponentialTest.h
diff --git a/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Dummy.h b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Dummy.h
new file mode 100644
index 0000000000000000000000000000000000000000..cd107faf50b9780b78743812ad32025adeb6caff
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/inc/MantidAlgorithms/Dummy.h
@@ -0,0 +1,65 @@
+#ifndef MANTID_ALGORITHMS_DUMMY_H_
+#define MANTID_ALGORITHMS_DUMMY_H_
+    
+#include "MantidKernel/System.h"
+#include "MantidAPI/Algorithm.h" 
+
+namespace Mantid
+{
+namespace Algorithms
+{
+
+  /** Dummy : TODO: DESCRIPTION
+    
+    @author
+    @date 2011-08-25
+
+    Copyright &copy; 2011 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
+
+    This file is part of Mantid.
+
+    Mantid is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or
+    (at your option) any later version.
+
+    Mantid is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+    File change history is stored at: <https://svn.mantidproject.org/mantid/trunk/Code/Mantid>
+    Code Documentation is available at: <http://doxygen.mantidproject.org>
+  */
+  class DLLExport Dummy  : public API::Algorithm
+  {
+  public:
+    Dummy();
+    ~Dummy();
+    
+    /// Algorithm's name for identification 
+    virtual const std::string name() const { return "Dummy";};
+    /// Algorithm's version for identification 
+    virtual int version() const { return 1;};
+    /// Algorithm's category for identification
+    virtual const std::string category() const { return "General";}
+    
+  private:
+    /// Sets documentation strings for this algorithm
+    virtual void initDocs();
+    /// Initialise the properties
+    void init();
+    /// Run the algorithm
+    void exec();
+
+
+  };
+
+
+} // namespace Algorithms
+} // namespace Mantid
+
+#endif  /* MANTID_ALGORITHMS_DUMMY_H_ */
diff --git a/Code/Mantid/Framework/Algorithms/src/AbsorptionCorrection.cpp b/Code/Mantid/Framework/Algorithms/src/AbsorptionCorrection.cpp
index e9f8f8042543cd21e7d14a4e9b11649198aa63cd..8926a5ad6cd66d3df256ab1f57e6876e0c5208a9 100644
--- a/Code/Mantid/Framework/Algorithms/src/AbsorptionCorrection.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/AbsorptionCorrection.cpp
@@ -27,7 +27,7 @@ AbsorptionCorrection::AbsorptionCorrection() : API::Algorithm(), m_inputWS(),
 void AbsorptionCorrection::init()
 {
   // The input workspace must have an instrument and units of wavelength
-  CompositeValidator<> * wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<> ("Wavelength"));
   wsValidator->add(new InstrumentValidator<>());
 
diff --git a/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp b/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
index e1a83e3ba9e7d11b1d7930d18de9d13fad82d31a..8e39510e01f9520e81653cedfb00cd981a4ae0fb 100644
--- a/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/AlignDetectors.cpp
@@ -151,7 +151,7 @@ AlignDetectors::~AlignDetectors()
 //-----------------------------------------------------------------------
 void AlignDetectors::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   //Workspace unit must be TOF.
   wsValidator->add(new WorkspaceUnitValidator<>("TOF"));
   wsValidator->add(new RawCountValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/ApplyTransmissionCorrection.cpp b/Code/Mantid/Framework/Algorithms/src/ApplyTransmissionCorrection.cpp
index 1bed63325b812063596f0984ac2e5ef13943a2e5..8d141f8fb906cb5d9218bc2bc5fe2822282fb423 100644
--- a/Code/Mantid/Framework/Algorithms/src/ApplyTransmissionCorrection.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ApplyTransmissionCorrection.cpp
@@ -26,7 +26,7 @@ using namespace Geometry;
 
 void ApplyTransmissionCorrection::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator),
diff --git a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
index 170a662cd46f5ddbd35eb7774d3dd21e588097c7..6c74465d1f501a5b1d1d5d1d15a129abc724b096 100644
--- a/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CalculateTransmission.cpp
@@ -34,7 +34,7 @@ CalculateTransmission::~CalculateTransmission()
 
 void CalculateTransmission::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new CommonBinsValidator<>);
   wsValidator->add(new HistogramValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/CalculateTransmissionBeamSpreader.cpp b/Code/Mantid/Framework/Algorithms/src/CalculateTransmissionBeamSpreader.cpp
index aa30bec1200e9fce1a425762e5c10607e5658bb5..32bfd89ab3f939f88346817b4c6db0488020db66 100644
--- a/Code/Mantid/Framework/Algorithms/src/CalculateTransmissionBeamSpreader.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CalculateTransmissionBeamSpreader.cpp
@@ -34,7 +34,7 @@ CalculateTransmissionBeamSpreader::~CalculateTransmissionBeamSpreader()
 
 void CalculateTransmissionBeamSpreader::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new CommonBinsValidator<>);
   wsValidator->add(new HistogramValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/ChopData.cpp b/Code/Mantid/Framework/Algorithms/src/ChopData.cpp
index fe286ae9017a5f8dfa5c81129bf0faf9ffdb03b0..3ee22a8fa489170e5a1b6b8c6f01f8d5c92d2aee 100644
--- a/Code/Mantid/Framework/Algorithms/src/ChopData.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ChopData.cpp
@@ -14,7 +14,7 @@ DECLARE_ALGORITHM(ChopData)
 
 void ChopData::init()
 {
-  CompositeValidator<> *wsVal = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsVal = new CompositeWorkspaceValidator<>;
   wsVal->add(new WorkspaceUnitValidator<>("TOF"));
   wsVal->add(new HistogramValidator<>);
   wsVal->add(new SpectraAxisValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/ConvertFromDistribution.cpp b/Code/Mantid/Framework/Algorithms/src/ConvertFromDistribution.cpp
index f02a6cec0353ec3f7dad87c1415934301e0a6b49..227255840d83cd7a15a2319db39e5d56ca253002 100644
--- a/Code/Mantid/Framework/Algorithms/src/ConvertFromDistribution.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ConvertFromDistribution.cpp
@@ -24,7 +24,7 @@ using namespace API;
 
 void ConvertFromDistribution::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new RawCountValidator<>(false));
   declareProperty(new WorkspaceProperty<>("Workspace", "",
diff --git a/Code/Mantid/Framework/Algorithms/src/ConvertSpectrumAxis.cpp b/Code/Mantid/Framework/Algorithms/src/ConvertSpectrumAxis.cpp
index fd0d19e71f98cf28a909e8da1ae1cf543f92159c..6f0b4d7c9ae82e99325c82ad059b0544a25d074d 100644
--- a/Code/Mantid/Framework/Algorithms/src/ConvertSpectrumAxis.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ConvertSpectrumAxis.cpp
@@ -54,7 +54,7 @@ namespace Algorithms
   void ConvertSpectrumAxis::init()
   {
     // Validator for Input Workspace
-    CompositeValidator<> *wsVal = new CompositeValidator<>;
+    CompositeWorkspaceValidator<> *wsVal = new CompositeWorkspaceValidator<>;
     wsVal->add(new HistogramValidator<>);
     wsVal->add(new SpectraAxisValidator<>);
     wsVal->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/ConvertToDistribution.cpp b/Code/Mantid/Framework/Algorithms/src/ConvertToDistribution.cpp
index 455f981f6ddbf8961bba1a784b9e40026a1653aa..baf3f833e63f90750de21b36f8568a73ec9941bf 100644
--- a/Code/Mantid/Framework/Algorithms/src/ConvertToDistribution.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ConvertToDistribution.cpp
@@ -24,7 +24,7 @@ using namespace API;
 
 void ConvertToDistribution::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new RawCountValidator<>);
   declareProperty(
diff --git a/Code/Mantid/Framework/Algorithms/src/ConvertUnits.cpp b/Code/Mantid/Framework/Algorithms/src/ConvertUnits.cpp
index 856da1ed42d9e6c3cd46e9010b305b7fca009286..06878ebb16b4bac338570a77642af34ecc6b4396 100644
--- a/Code/Mantid/Framework/Algorithms/src/ConvertUnits.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/ConvertUnits.cpp
@@ -44,7 +44,7 @@ ConvertUnits::~ConvertUnits()
 /// Initialisation method
 void ConvertUnits::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>);
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<API::MatrixWorkspace>("InputWorkspace","",Direction::Input,wsValidator),
diff --git a/Code/Mantid/Framework/Algorithms/src/CorrectKiKf.cpp b/Code/Mantid/Framework/Algorithms/src/CorrectKiKf.cpp
index 8589b7a0e90d199b013a168c99e6327a78c81b51..aaaf0cad8172a65f706726f2fb464f95ca311686 100644
--- a/Code/Mantid/Framework/Algorithms/src/CorrectKiKf.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CorrectKiKf.cpp
@@ -42,7 +42,7 @@ CorrectKiKf::~CorrectKiKf()
 /// Initialisation method
 void CorrectKiKf::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("DeltaE"));
 
   this->declareProperty(new WorkspaceProperty<API::MatrixWorkspace>("InputWorkspace","",Direction::Input,wsValidator),
diff --git a/Code/Mantid/Framework/Algorithms/src/CrossCorrelate.cpp b/Code/Mantid/Framework/Algorithms/src/CrossCorrelate.cpp
index c0156c969d1d8ef4ca6abccf30a3a26a24f6ec0e..b12fede03418deb6b597cd6b2be6b9b358c4a1ad 100644
--- a/Code/Mantid/Framework/Algorithms/src/CrossCorrelate.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/CrossCorrelate.cpp
@@ -42,7 +42,7 @@ namespace Mantid
     /// Initialisation method.
     void CrossCorrelate::init()
     {
-      API::CompositeValidator<MatrixWorkspace> *wsValidator = new API::CompositeValidator<MatrixWorkspace>;
+      API::CompositeWorkspaceValidator<MatrixWorkspace> *wsValidator = new API::CompositeWorkspaceValidator<MatrixWorkspace>;
       wsValidator->add(new API::WorkspaceUnitValidator<MatrixWorkspace>("dSpacing"));
       wsValidator->add(new API::RawCountValidator<MatrixWorkspace>);
 
diff --git a/Code/Mantid/Framework/Algorithms/src/DetectorEfficiencyCor.cpp b/Code/Mantid/Framework/Algorithms/src/DetectorEfficiencyCor.cpp
index d5e2824a390ea942df254c25edccfd978c955a9e..7e7c1430d94718b4f21baa0910f08f7632603b00 100644
--- a/Code/Mantid/Framework/Algorithms/src/DetectorEfficiencyCor.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/DetectorEfficiencyCor.cpp
@@ -79,7 +79,7 @@ DetectorEfficiencyCor::DetectorEfficiencyCor() :
  */
 void DetectorEfficiencyCor::init()
 {
-  CompositeValidator<> *val = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *val = new CompositeWorkspaceValidator<>;
   val->add(new WorkspaceUnitValidator<>("DeltaE"));
   val->add(new HistogramValidator<>);
   val->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/DiffractionFocussing2.cpp b/Code/Mantid/Framework/Algorithms/src/DiffractionFocussing2.cpp
index 5201bc0989197f4bd14a3d4919450bad912c983d..126cce87452d87f99fc466c10e501aba82757a17 100644
--- a/Code/Mantid/Framework/Algorithms/src/DiffractionFocussing2.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/DiffractionFocussing2.cpp
@@ -56,7 +56,7 @@ DiffractionFocussing2::~DiffractionFocussing2()
 void DiffractionFocussing2::init()
 {
 
-  API::CompositeValidator<MatrixWorkspace> *wsValidator = new API::CompositeValidator<MatrixWorkspace>;
+  API::CompositeWorkspaceValidator<MatrixWorkspace> *wsValidator = new API::CompositeWorkspaceValidator<MatrixWorkspace>;
   // wsValidator->add(new API::WorkspaceUnitValidator<MatrixWorkspace>("dSpacing"));
   wsValidator->add(new API::RawCountValidator<MatrixWorkspace>);
   declareProperty(
diff --git a/Code/Mantid/Framework/Algorithms/src/Dummy.cpp b/Code/Mantid/Framework/Algorithms/src/Dummy.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..bc79db40aa37ff8841085ce4a6ef259093af7688
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/src/Dummy.cpp
@@ -0,0 +1,59 @@
+#include "MantidAlgorithms/Dummy.h"
+#include "MantidKernel/System.h"
+
+using namespace Mantid::Kernel;
+using namespace Mantid::API;
+
+namespace Mantid
+{
+namespace Algorithms
+{
+
+  // Register the algorithm into the AlgorithmFactory
+  //DECLARE_ALGORITHM(Dummy)
+  
+
+
+  //----------------------------------------------------------------------------------------------
+  /** Constructor
+   */
+  Dummy::Dummy()
+  {
+  }
+    
+  //----------------------------------------------------------------------------------------------
+  /** Destructor
+   */
+  Dummy::~Dummy()
+  {
+  }
+  
+
+  //----------------------------------------------------------------------------------------------
+  /// Sets documentation strings for this algorithm
+  void Dummy::initDocs()
+  {
+    this->setOptionalMessage("Dummy algorithm for testing");
+
+  }
+
+  //----------------------------------------------------------------------------------------------
+  /** Initialize the algorithm's properties.
+   */
+  void Dummy::init()
+  {
+    declareProperty("IntNumber", 123);
+  }
+
+  //----------------------------------------------------------------------------------------------
+  /** Execute the algorithm.
+   */
+  void Dummy::exec()
+  {
+  }
+
+
+
+} // namespace Mantid
+} // namespace Algorithms
+
diff --git a/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition.cpp b/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition.cpp
index 884d6357e4b33164235654398df2fa463564000d..f38d68ee345ed1c5cb56a6a69bf003ad196672a9 100644
--- a/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition.cpp
@@ -35,7 +35,7 @@ using namespace Geometry;
 
 void FindCenterOfMassPosition::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator));
diff --git a/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition2.cpp b/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition2.cpp
index 72ae4bd03c9126ac4e999b71f550efaff30fd6aa..0127790c819660827a3ab109a4637c7eea1d56a6 100644
--- a/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition2.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/FindCenterOfMassPosition2.cpp
@@ -38,7 +38,7 @@ using namespace DataObjects;
 
 void FindCenterOfMassPosition2::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator));
diff --git a/Code/Mantid/Framework/Algorithms/src/GetEi.cpp b/Code/Mantid/Framework/Algorithms/src/GetEi.cpp
index ee8a2996a4218df43c0a43f3fd9c6a266f69ee31..e7563708d0fb3d7703c4fc33b298633741d74e30 100644
--- a/Code/Mantid/Framework/Algorithms/src/GetEi.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/GetEi.cpp
@@ -49,7 +49,7 @@ GetEi::GetEi() : Algorithm(),
 void GetEi::init()
 {
   // Declare required input parameters for algorithm and do some validation here
-  CompositeValidator<> *val = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *val = new CompositeWorkspaceValidator<>;
   val->add(new WorkspaceUnitValidator<>("TOF"));
   val->add(new HistogramValidator<>);
   val->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/GetEi2.cpp b/Code/Mantid/Framework/Algorithms/src/GetEi2.cpp
index ca1c154b7ac98ea3efb5e211fd55130a92bc9369..1cf04bef1b1c8f03a6a9e9d58f72fb0734d087b8 100644
--- a/Code/Mantid/Framework/Algorithms/src/GetEi2.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/GetEi2.cpp
@@ -44,7 +44,7 @@ GetEi2::GetEi2() : Algorithm(), m_input_ws(), m_peak1_pos(0, 0.0), m_fixedei(fal
 void GetEi2::init()
 
 {// Declare required input parameters for algorithm and do some validation here
-  CompositeValidator<> *validator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *validator = new CompositeWorkspaceValidator<>;
   validator->add(new WorkspaceUnitValidator<>("TOF"));
   validator->add(new HistogramValidator<>);
   validator->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/GhostCorrection.cpp b/Code/Mantid/Framework/Algorithms/src/GhostCorrection.cpp
index 9fa9a3dfd161c5739032ebeed3b59ecdbbffec69..73763b697e35b37928372b90e0a7f9b7d319f80c 100644
--- a/Code/Mantid/Framework/Algorithms/src/GhostCorrection.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/GhostCorrection.cpp
@@ -73,7 +73,7 @@ namespace Mantid
       nGroups = 0;
 
       //Input workspace must be in dSpacing and be an inputWorkspace
-      API::CompositeValidator<EventWorkspace> *wsValidator = new API::CompositeValidator<EventWorkspace>;
+      API::CompositeWorkspaceValidator<EventWorkspace> *wsValidator = new API::CompositeWorkspaceValidator<EventWorkspace>;
       wsValidator->add(new API::WorkspaceUnitValidator<EventWorkspace>("TOF"));
       wsValidator->add(new API::RawCountValidator<EventWorkspace>);
 
diff --git a/Code/Mantid/Framework/Algorithms/src/He3TubeEfficiency.cpp b/Code/Mantid/Framework/Algorithms/src/He3TubeEfficiency.cpp
index b4cad0c7f19fbb225e33773bb2974dd8fc17d41e..dd42d9736607d2d94735a03ddd9dad5d16684b39 100644
--- a/Code/Mantid/Framework/Algorithms/src/He3TubeEfficiency.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/He3TubeEfficiency.cpp
@@ -54,7 +54,7 @@ He3TubeEfficiency::~He3TubeEfficiency()
  */
 void He3TubeEfficiency::init()
 {
-  API::CompositeValidator<> *wsValidator = new API::CompositeValidator<>;
+  API::CompositeWorkspaceValidator<> *wsValidator = new API::CompositeWorkspaceValidator<>;
   wsValidator->add(new API::WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new API::HistogramValidator<>);
   wsValidator->add(new API::InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/IQTransform.cpp b/Code/Mantid/Framework/Algorithms/src/IQTransform.cpp
index 3c8773ae6740f57c658e6f12a94f3edc710ef88d..e67862a8a5aebca490396353a557e263811fbaa7 100644
--- a/Code/Mantid/Framework/Algorithms/src/IQTransform.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/IQTransform.cpp
@@ -50,7 +50,7 @@ IQTransform::~IQTransform() {}
 
 void IQTransform::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   // Require the input to be in units of Q and to be a distribution
   // (which the result of a SANS reduction in Mantid will be)
   wsValidator->add(new WorkspaceUnitValidator<>("MomentumTransfer"));
diff --git a/Code/Mantid/Framework/Algorithms/src/IdentifyNoisyDetectors.cpp b/Code/Mantid/Framework/Algorithms/src/IdentifyNoisyDetectors.cpp
index a8d60ba2f9da9e0e7bf88b80e7ac696c446e5d64..a5436de11eb3ddbd3ea935d3032e5a77c3a79a0e 100644
--- a/Code/Mantid/Framework/Algorithms/src/IdentifyNoisyDetectors.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/IdentifyNoisyDetectors.cpp
@@ -20,7 +20,7 @@ void IdentifyNoisyDetectors::initDocs()
 
 void IdentifyNoisyDetectors::init()
 {
-  CompositeValidator<> *wsVal = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsVal = new CompositeWorkspaceValidator<>;
   wsVal->add(new WorkspaceUnitValidator<>("TOF"));
   wsVal->add(new HistogramValidator<>);
   wsVal->add(new SpectraAxisValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/MonteCarloAbsorption.cpp b/Code/Mantid/Framework/Algorithms/src/MonteCarloAbsorption.cpp
index 58deba9103cc02cd0b7ea5d2786ff1580029e2af..74be0cbbfb0fe4726deff899e1337c22a5131992 100644
--- a/Code/Mantid/Framework/Algorithms/src/MonteCarloAbsorption.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/MonteCarloAbsorption.cpp
@@ -30,7 +30,7 @@ namespace Mantid
     DECLARE_ALGORITHM(MonteCarloAbsorption)
 
     using API::WorkspaceProperty;
-    using API::CompositeValidator;
+    using API::CompositeWorkspaceValidator;
     using API::WorkspaceUnitValidator;
     using API::InstrumentValidator;
     using API::MatrixWorkspace_sptr;
@@ -74,7 +74,7 @@ namespace Mantid
     void MonteCarloAbsorption::init()
     {
       // The input workspace must have an instrument and units of wavelength
-      CompositeValidator<> * wsValidator = new CompositeValidator<>;
+      CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<>;
       wsValidator->add(new WorkspaceUnitValidator<> ("Wavelength"));
       wsValidator->add(new InstrumentValidator<>());
 
diff --git a/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp b/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
index 283b262b2ad77b77df1da44e82db3d466d7bf16d..c5179c6e1e2dbf7aa84b58b37c1dc9da3bf207b0 100644
--- a/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/NormaliseToMonitor.cpp
@@ -40,7 +40,7 @@ void NormaliseToMonitor::initDocs()
 
 void NormaliseToMonitor::init()
 {
-  CompositeValidator<> *val = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *val = new CompositeWorkspaceValidator<>;
   val->add(new HistogramValidator<>);
   val->add(new RawCountValidator<>);
   // It's been said that we should restrict the unit to being wavelength, but I'm not sure about that...
diff --git a/Code/Mantid/Framework/Algorithms/src/NormaliseToUnity.cpp b/Code/Mantid/Framework/Algorithms/src/NormaliseToUnity.cpp
index b7e076878ce97bf555ef83c10c16639f1dd5d266..57be247ddd37baa06f3b54728fa5bacf373d74ac 100644
--- a/Code/Mantid/Framework/Algorithms/src/NormaliseToUnity.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/NormaliseToUnity.cpp
@@ -30,7 +30,7 @@ using namespace API;
  */
 void NormaliseToUnity::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new CommonBinsValidator<>);
 
diff --git a/Code/Mantid/Framework/Algorithms/src/PDFFT.cpp b/Code/Mantid/Framework/Algorithms/src/PDFFT.cpp
index 695657508c8ddc5d12de7a9f47cacae79f69b4cb..383fe1ba9ffb0293ebb36cb4e4a64fd545cd9e22 100644
--- a/Code/Mantid/Framework/Algorithms/src/PDFFT.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/PDFFT.cpp
@@ -39,7 +39,7 @@ void PDFFT::initDocs() {
 void PDFFT::init() {
 	API::WorkspaceUnitValidator<>* uv = new API::WorkspaceUnitValidator<>(
 			"MomentumTransfer");
-	// CompositeValidator<> *wsValidator = new CompositeValidator<>;
+	// CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
 	// wsValidator->add(new WorkspaceUnitValidator<>("MomentumTransfer"));
 	// declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input, wsValidator), "An input workspace S(d).");
 	declareProperty(new WorkspaceProperty<> ("InputWorkspace", "",
diff --git a/Code/Mantid/Framework/Algorithms/src/Q1D.cpp b/Code/Mantid/Framework/Algorithms/src/Q1D.cpp
index fbf884101ccfb261e1e9a85e44624e95501db36e..a8a3b0b111a02d67526a0e779fffed980d497351 100644
--- a/Code/Mantid/Framework/Algorithms/src/Q1D.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Q1D.cpp
@@ -33,7 +33,7 @@ using namespace Geometry;
 
 void Q1D::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/Q1D2.cpp b/Code/Mantid/Framework/Algorithms/src/Q1D2.cpp
index f467f232c1a5091642d0c17159080b6eaa27ee9d..58293f8e6fc759d1f3dba32f6a85ba8955500904 100644
--- a/Code/Mantid/Framework/Algorithms/src/Q1D2.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Q1D2.cpp
@@ -33,7 +33,7 @@ using namespace Geometry;
 
 void Q1D2::init()
 {
-  CompositeValidator<> *dataVal = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *dataVal = new CompositeWorkspaceValidator<>;
   dataVal->add(new WorkspaceUnitValidator<>("Wavelength"));
   dataVal->add(new HistogramValidator<>);
   dataVal->add(new InstrumentValidator<>);
@@ -49,7 +49,7 @@ void Q1D2::init()
   declareProperty(new WorkspaceProperty<>("PixelAdj","", Direction::Input, true),
     "The scaling to apply to each spectrum e.g. for detector efficiency, must have\n"
     "the same number of spectra as the DetBankWorkspace");
-  CompositeValidator<> *wavVal = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wavVal = new CompositeWorkspaceValidator<>;
   wavVal->add(new WorkspaceUnitValidator<>("Wavelength"));
   wavVal->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("WavelengthAdj", "", Direction::Input, true, wavVal),
diff --git a/Code/Mantid/Framework/Algorithms/src/Q1DTOF.cpp b/Code/Mantid/Framework/Algorithms/src/Q1DTOF.cpp
index f098358a21f74b138e9615d6790cd9c7fa26e9c2..1e0e364dcf7428501b9a612a9c9061cb5b66b539 100644
--- a/Code/Mantid/Framework/Algorithms/src/Q1DTOF.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Q1DTOF.cpp
@@ -36,7 +36,7 @@ using namespace DataObjects;
 
 void Q1DTOF::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp b/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
index 58806f34fdb167d4873ec89615613619c12ad281..c7e4572a88f14f3d6f8bea13dbfc5585606845ab 100644
--- a/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Q1DWeighted.cpp
@@ -36,7 +36,7 @@ using namespace DataObjects;
 
 void Q1DWeighted::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/Qxy.cpp b/Code/Mantid/Framework/Algorithms/src/Qxy.cpp
index bc2ebe974a22e917c9b9350268bdd7823bdad93f..12873d383aac50edf5739bd48f6016926258c65a 100644
--- a/Code/Mantid/Framework/Algorithms/src/Qxy.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Qxy.cpp
@@ -30,7 +30,7 @@ using namespace Geometry;
 
 void Qxy::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new InstrumentValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/Regroup.cpp b/Code/Mantid/Framework/Algorithms/src/Regroup.cpp
index 2621a1c2e5ecb2dce62dbd1ff36ee4afb15a1feb..4887468866d36457e1443949338796f9bf38cba5 100644
--- a/Code/Mantid/Framework/Algorithms/src/Regroup.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/Regroup.cpp
@@ -39,7 +39,7 @@ using API::MatrixWorkspace;
 /// Initialisation method. Declares properties to be used in algorithm.
 void Regroup::init()
 {
-  API::CompositeValidator<> *wsVal = new API::CompositeValidator<>;
+  API::CompositeWorkspaceValidator<> *wsVal = new API::CompositeWorkspaceValidator<>;
   wsVal->add(new API::HistogramValidator<>);
   wsVal->add(new API::CommonBinsValidator<>);
   declareProperty(
diff --git a/Code/Mantid/Framework/Algorithms/src/RemoveBins.cpp b/Code/Mantid/Framework/Algorithms/src/RemoveBins.cpp
index e2ec20a0f3cc6df9cf1ddd7d71b64ab361aaeb71..f5c262b337eac8b6da9620ea4e0b9489f79eb669 100644
--- a/Code/Mantid/Framework/Algorithms/src/RemoveBins.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/RemoveBins.cpp
@@ -33,7 +33,7 @@ RemoveBins::RemoveBins() : API::Algorithm(), m_rangeUnit()
  */
 void RemoveBins::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>);
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator),
diff --git a/Code/Mantid/Framework/Algorithms/src/RemoveLowResTOF.cpp b/Code/Mantid/Framework/Algorithms/src/RemoveLowResTOF.cpp
index eb03665ee2a4be21438365a78f85ad16f1cd165b..eec699c946ff998b7a0cca0d6405ed7a999d5d2b 100644
--- a/Code/Mantid/Framework/Algorithms/src/RemoveLowResTOF.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/RemoveLowResTOF.cpp
@@ -56,7 +56,7 @@ const string RemoveLowResTOF::category() const
 
 void RemoveLowResTOF::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("TOF"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new RawCountValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/SANSDirectBeamScaling.cpp b/Code/Mantid/Framework/Algorithms/src/SANSDirectBeamScaling.cpp
index 1f3e502ff7f37c1b9ea3b8ca9d34b37968a52752..63c7b85047b6eabced16e217391d4602454cc9f8 100644
--- a/Code/Mantid/Framework/Algorithms/src/SANSDirectBeamScaling.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SANSDirectBeamScaling.cpp
@@ -36,7 +36,7 @@ using namespace DataObjects;
 
 void SANSDirectBeamScaling::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator));
diff --git a/Code/Mantid/Framework/Algorithms/src/SofQW.cpp b/Code/Mantid/Framework/Algorithms/src/SofQW.cpp
index 08f3c660b4ae7d8ab5d8f556dacd9f04ffe9cfc2..7fb3096578bef2551071248e383d3eafe3f66ede 100644
--- a/Code/Mantid/Framework/Algorithms/src/SofQW.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SofQW.cpp
@@ -32,7 +32,7 @@ using namespace API;
 
 void SofQW::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("DeltaE"));
   wsValidator->add(new SpectraAxisValidator<>());
   wsValidator->add(new CommonBinsValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/SphericalAbsorption.cpp b/Code/Mantid/Framework/Algorithms/src/SphericalAbsorption.cpp
index e007f1fbe9de4d9d8b8cc1e77287026a4a4d0d9d..d12f7e78ea9cc1bb3ce8e7ddf05f4140ee6fd8a3 100644
--- a/Code/Mantid/Framework/Algorithms/src/SphericalAbsorption.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/SphericalAbsorption.cpp
@@ -38,7 +38,7 @@ SphericalAbsorption::SphericalAbsorption() : API::Algorithm(), m_inputWS(),
 void SphericalAbsorption::init()
 {
   // The input workspace must have an instrument and units of wavelength
-  CompositeValidator<> * wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<> ("Wavelength"));
   wsValidator->add(new InstrumentValidator<>());
 
diff --git a/Code/Mantid/Framework/Algorithms/src/TOFSANSResolution.cpp b/Code/Mantid/Framework/Algorithms/src/TOFSANSResolution.cpp
index be44eefb3aad1486d9674ab19d886db123066c8d..2704120b7be8f0b7c7fb8d4bd6c237f8cc65f986 100755
--- a/Code/Mantid/Framework/Algorithms/src/TOFSANSResolution.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/TOFSANSResolution.cpp
@@ -36,7 +36,7 @@ void TOFSANSResolution::init()
   declareProperty(new WorkspaceProperty<Workspace2D>("InputWorkspace","",Direction::InOut, new WorkspaceUnitValidator<Workspace2D>("MomentumTransfer")),
       "Name the workspace to calculate the resolution for");
 
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   declareProperty(new WorkspaceProperty<>("ReducedWorkspace","",Direction::Input, wsValidator),
       "I(Q) workspace");
diff --git a/Code/Mantid/Framework/Algorithms/src/UnwrapMonitor.cpp b/Code/Mantid/Framework/Algorithms/src/UnwrapMonitor.cpp
index 540301b21f3e2143d37027a98709f0436327d876..23d5ac7ce9a4816a550ceca71c04bb5ed5b66b51 100644
--- a/Code/Mantid/Framework/Algorithms/src/UnwrapMonitor.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/UnwrapMonitor.cpp
@@ -35,7 +35,7 @@ UnwrapMonitor::~UnwrapMonitor()
 /// Initialisation method
 void UnwrapMonitor::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("TOF"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new RawCountValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/src/UnwrapSNS.cpp b/Code/Mantid/Framework/Algorithms/src/UnwrapSNS.cpp
index c0a9bd9540d254cb8362d6969fcd30965f1705f8..e82207030288f3bcf036bb17c8c3ce8844075f38 100644
--- a/Code/Mantid/Framework/Algorithms/src/UnwrapSNS.cpp
+++ b/Code/Mantid/Framework/Algorithms/src/UnwrapSNS.cpp
@@ -64,7 +64,7 @@ const std::string UnwrapSNS::category() const
 /// Initialisation method
 void UnwrapSNS::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("TOF"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new RawCountValidator<>);
diff --git a/Code/Mantid/Framework/Algorithms/test/DummyTest.h b/Code/Mantid/Framework/Algorithms/test/DummyTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..0a8af7a66dbb7107fcb2c0e3d880411760a6ad43
--- /dev/null
+++ b/Code/Mantid/Framework/Algorithms/test/DummyTest.h
@@ -0,0 +1,33 @@
+#ifndef MANTID_ALGORITHMS_DUMMYTEST_H_
+#define MANTID_ALGORITHMS_DUMMYTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidKernel/Timer.h"
+#include "MantidKernel/System.h"
+#include <iostream>
+#include <iomanip>
+
+#include "MantidAlgorithms/Dummy.h"
+
+using namespace Mantid;
+using namespace Mantid::Algorithms;
+using namespace Mantid::API;
+
+class DummyTest : public CxxTest::TestSuite
+{
+public:
+
+    
+  void test_Init()
+  {
+    Dummy alg;
+    TS_ASSERT_THROWS_NOTHING( alg.initialize() )
+    TS_ASSERT( alg.isInitialized() )
+  }
+  
+
+};
+
+
+#endif /* MANTID_ALGORITHMS_DUMMYTEST_H_ */
+
diff --git a/Code/Mantid/Framework/Crystal/src/AnvredCorrection.cpp b/Code/Mantid/Framework/Crystal/src/AnvredCorrection.cpp
index 151228c2b728f15d575712c9e398fb6a4449ba56..9ad5c89922b1b0f0f27d343659f3db41bd2c529d 100644
--- a/Code/Mantid/Framework/Crystal/src/AnvredCorrection.cpp
+++ b/Code/Mantid/Framework/Crystal/src/AnvredCorrection.cpp
@@ -68,7 +68,7 @@ AnvredCorrection::AnvredCorrection() : API::Algorithm()
 void AnvredCorrection::init()
 {
   // The input workspace must have an instrument and units of wavelength
-  CompositeValidator<> * wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<> ("Wavelength"));
   wsValidator->add(new InstrumentValidator<>());
 
diff --git a/Code/Mantid/Framework/DataHandling/src/FindDetectorsPar.cpp b/Code/Mantid/Framework/DataHandling/src/FindDetectorsPar.cpp
index fe71151ac635e69701505a5071ac416e6a3e1875..67b029ce03bcef5f9ab8fc67ce0275899a8cf845 100644
--- a/Code/Mantid/Framework/DataHandling/src/FindDetectorsPar.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/FindDetectorsPar.cpp
@@ -37,7 +37,7 @@ FindDetectorsPar::~FindDetectorsPar(){};
 
 void FindDetectorsPar::init()
 {
-    CompositeValidator<> * wsValidator = new CompositeValidator<> ;
+    CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<> ;
       wsValidator->add(new API::InstrumentValidator<>);
       wsValidator->add(new API::CommonBinsValidator<>);
   // input workspace
diff --git a/Code/Mantid/Framework/DataHandling/src/LoadDetectorInfo.cpp b/Code/Mantid/Framework/DataHandling/src/LoadDetectorInfo.cpp
index cd0be6b845d1461676181326af63b97db7235382..56e6fd32c9097bfb80d2029416076c8a874e267f 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadDetectorInfo.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadDetectorInfo.cpp
@@ -44,7 +44,7 @@ LoadDetectorInfo::LoadDetectorInfo()
 void LoadDetectorInfo::init()
 {
   // Declare required input parameters for algorithm
-  CompositeValidator<> *val = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *val = new CompositeWorkspaceValidator<>;
   val->add(new WorkspaceUnitValidator<>("TOF"));
   val->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("Workspace","",Direction::InOut,val),
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveDASC.cpp b/Code/Mantid/Framework/DataHandling/src/SaveDASC.cpp
index f489af124c39c0d3748c98b36eb0651fd791f080..ed8fa58983cfc0d6122e4843386e032d28fd1614 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveDASC.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveDASC.cpp
@@ -28,7 +28,7 @@ void SaveDASC::initDocs()
  */
 void SaveDASC::init()
 {
-  API::CompositeValidator<> *wsValidator = new API::CompositeValidator<>;
+  API::CompositeWorkspaceValidator<> *wsValidator = new API::CompositeWorkspaceValidator<>;
   // Data must havec common bins
   wsValidator->add(new API::CommonBinsValidator<>);
   // the output of this algorithm is spectrum data, not histogram, but as a histogram to spectrum conversion is built in a spectrum as input would be no good, at the moment
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveNISTDAT.cpp b/Code/Mantid/Framework/DataHandling/src/SaveNISTDAT.cpp
index 8efd79dcab23cc2282ccfe98f5fe027da4cc875b..8bd2483a80aa86be92593291699d6d14eaf86f36 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveNISTDAT.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveNISTDAT.cpp
@@ -28,7 +28,7 @@ using namespace Geometry;
 
 void SaveNISTDAT::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("MomentumTransfer"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input, wsValidator));
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveNXSPE.cpp b/Code/Mantid/Framework/DataHandling/src/SaveNXSPE.cpp
index c009b2499f0d29e5308e9593554cfc9dc82ae02f..36d81499e0182d5763ec499f10edabebfc128e2f 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveNXSPE.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveNXSPE.cpp
@@ -48,7 +48,7 @@ namespace Mantid
           exts),
           "The name of the NXSPE file to write, as a full or relative path");
 
-      CompositeValidator<> * wsValidator = new CompositeValidator<> ;
+      CompositeWorkspaceValidator<> * wsValidator = new CompositeWorkspaceValidator<> ;
       wsValidator->add(new API::WorkspaceUnitValidator<>("DeltaE"));
       wsValidator->add(new API::CommonBinsValidator<>);
       wsValidator->add(new API::HistogramValidator<>);
diff --git a/Code/Mantid/Framework/DataHandling/src/SaveSPE.cpp b/Code/Mantid/Framework/DataHandling/src/SaveSPE.cpp
index 2ae51cc051cdc3cdfdfa658d4a2d5d0f7459c649..9d331feb2fcdb68a1d7f583961c56111b1ffac10 100644
--- a/Code/Mantid/Framework/DataHandling/src/SaveSPE.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/SaveSPE.cpp
@@ -50,7 +50,7 @@ namespace Mantid
     void SaveSPE::init()
     {
       // Data must be in Energy Transfer and common bins
-      API::CompositeValidator<> *wsValidator = new API::CompositeValidator<>;
+      API::CompositeWorkspaceValidator<> *wsValidator = new API::CompositeWorkspaceValidator<>;
       wsValidator->add(new API::WorkspaceUnitValidator<>("DeltaE"));
       wsValidator->add(new API::CommonBinsValidator<>);
       wsValidator->add(new API::HistogramValidator<>);
diff --git a/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h b/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
index c387d44d70da7372736cc99460e763d730137e8b..ab1e0ce198cdc25343e9ad1d0ebc7647e4d67d3c 100644
--- a/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
+++ b/Code/Mantid/Framework/DataObjects/test/WorkspaceValidatorsTest.h
@@ -19,7 +19,7 @@ private:
   RawCountValidator<>* rawVal;
   RawCountValidator<>* nonRawVal;
   CommonBinsValidator<>* binVal;
-  CompositeValidator<> compVal;
+  CompositeWorkspaceValidator<> compVal;
 
   MatrixWorkspace_sptr ws1;
   MatrixWorkspace_sptr ws2;
@@ -164,20 +164,20 @@ public:
     delete v;
   }
 
-  void testCompositeValidator_getType()
+  void testCompositeWorkspaceValidator_getType()
   {
     TS_ASSERT_EQUALS( compVal.getType(), "composite" );
   }
 
-  void testCompositeValidator_clone()
+  void testCompositeWorkspaceValidator_clone()
   {
     IValidator<MatrixWorkspace_sptr> *v = compVal.clone();
     TS_ASSERT_DIFFERS( v, &compVal );
-    TS_ASSERT( dynamic_cast<CompositeValidator<>*>(v) );
+    TS_ASSERT( v );
     delete v;
   }
 
-  void testCompositeValidator_isValidandAdd()
+  void testCompositeWorkspaceValidator_isValidandAdd()
   {
     // Passes if empty
     TS_ASSERT_EQUALS( compVal.isValid(ws1), "" );
@@ -187,7 +187,7 @@ public:
         "The workspace must have units of Wavelength");
     TS_ASSERT_EQUALS( compVal.isValid(ws2), "" );
 
-    CompositeValidator<> compVal2;
+    CompositeWorkspaceValidator<> compVal2;
     compVal2.add(histVal->clone());
     TS_ASSERT_EQUALS( compVal2.isValid(ws1), "" );
     TS_ASSERT_EQUALS( compVal2.isValid(ws2),
diff --git a/Code/Mantid/Framework/Kernel/CMakeLists.txt b/Code/Mantid/Framework/Kernel/CMakeLists.txt
index 60832c8064bf8f0f3c3084a976f5c9431220b5d9..67739e345b6b972b27d483a8b7f53be865a4fd6e 100644
--- a/Code/Mantid/Framework/Kernel/CMakeLists.txt
+++ b/Code/Mantid/Framework/Kernel/CMakeLists.txt
@@ -5,6 +5,7 @@ set ( SRC_FILES
 	src/Atom.cpp
 	src/BinFinder.cpp
 	src/CPUTimer.cpp
+	src/CompositeValidator.cpp
 	src/ConfigService.cpp
 	src/DateAndTime.cpp
 	src/DateValidator.cpp
@@ -92,6 +93,7 @@ set ( INC_FILES
 	inc/MantidKernel/BoundedValidator.h
 	inc/MantidKernel/CPUTimer.h
 	inc/MantidKernel/Cache.h
+	inc/MantidKernel/CompositeValidator.h
 	inc/MantidKernel/ConfigService.h
 	inc/MantidKernel/DataService.h
 	inc/MantidKernel/DateAndTime.h
@@ -181,6 +183,7 @@ set ( TEST_FILES
 	test/BoundedValidatorTest.h
 	test/CPUTimerTest.h
 	test/CacheTest.h
+	test/CompositeValidatorTest.h
 	test/ConfigServiceTest.h
 	test/DateAndTimeTest.h
 	test/DateValidatorTest.h
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/CompositeValidator.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/CompositeValidator.h
new file mode 100644
index 0000000000000000000000000000000000000000..50b7683a41abebf145d612f00a9fb4705d537015
--- /dev/null
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/CompositeValidator.h
@@ -0,0 +1,130 @@
+#ifndef MANTID_KERNEL_COMPOSITEVALIDATOR_H_
+#define MANTID_KERNEL_COMPOSITEVALIDATOR_H_
+    
+#include "MantidKernel/System.h"
+#include "MantidKernel/IValidator.h"
+#include <vector>
+
+
+namespace Mantid
+{
+namespace Kernel
+{
+
+
+  //===============================================================================================
+  /** A composite validator that can combine any 2+ arbitrary validators together.
+
+      @author Russell Taylor, Janik Zikovsky
+      @date Aug 25, 2011
+
+      Copyright &copy; 2008-2010 ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory
+
+      This file is part of Mantid.
+
+      Mantid is free software; you can redistribute it and/or modify
+      it under the terms of the GNU General Public License as published by
+      the Free Software Foundation; either version 3 of the License, or
+      (at your option) any later version.
+
+      Mantid is distributed in the hope that it will be useful,
+      but WITHOUT ANY WARRANTY; without even the implied warranty of
+      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+      GNU General Public License for more details.
+
+      You should have received a copy of the GNU General Public License
+      along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+      File change history is stored at: <https://svn.mantidproject.org/mantid/trunk/Code/Mantid>.
+      Code Documentation is available at: <http://doxygen.mantidproject.org>
+  */
+  template <typename TYPE>
+  class DLLExport CompositeValidator : public Kernel::IValidator<TYPE>
+  {
+  public:
+    CompositeValidator() {}
+
+    virtual ~CompositeValidator()
+    {
+      for (unsigned int i=0; i < m_children.size(); ++i)
+      {
+        delete m_children[i];
+      }
+      m_children.clear();
+    }
+
+    // IValidator methods
+    ///Gets the type of the validator
+    std::string getType() const { return "composite"; }
+
+    // ------------------------------------------------------------------------------------
+    Kernel::IValidator<TYPE>* clone()
+    {
+      CompositeValidator<TYPE>* copy = new CompositeValidator<TYPE>();
+      for (unsigned int i=0; i < m_children.size(); ++i)
+      {
+        copy->add( m_children[i]->clone() );
+      }
+      return copy;
+    }
+
+    // ------------------------------------------------------------------------------------
+    /** Adds a validator to the group of validators to check
+     *  @param child :: A pointer to the validator to add
+     */
+    void add(Kernel::IValidator<TYPE>* child)
+    {
+      m_children.push_back(child);
+    }
+
+    // ------------------------------------------------------------------------------------
+    /** @return true if ALL the validators say that it is enabled */
+    virtual bool isEnabled() const
+    {
+      bool out = true;
+      for (unsigned int i=0; i < m_children.size(); ++i)
+        out = out && m_children[i]->isEnabled();
+      return out;
+    }
+
+    // ------------------------------------------------------------------------------------
+    /** @return true if ALL the validators say that it is visible */
+    virtual bool isVisible() const
+    {
+      bool out = true;
+      for (unsigned int i=0; i < m_children.size(); ++i)
+        out = out && m_children[i]->isVisible();
+      return out;
+    }
+
+
+  private:
+    /// Private Copy constructor: NO DIRECT COPY ALLOWED
+    CompositeValidator(const CompositeValidator&);
+
+    /** Checks the value of all child validators. Fails if any child fails.
+     *  @param value :: The workspace to test
+     *  @return A user level description of the first problem it finds otherwise ""
+     */
+    std::string checkValidity( const TYPE & value ) const
+    {
+      //Go though all the validators
+      for (unsigned int i=0; i < m_children.size(); ++i)
+      {
+        std::string error = m_children[i]->isValid(value);
+        //exit on the first error, to avoid passing doing more tests on invalid objects that could fail
+        if (error != "") return error;
+      }
+      //there were no errors
+      return "";
+    }
+
+    /// A container for the child validators
+    std::vector<Kernel::IValidator<TYPE>*> m_children;
+  };
+
+
+} // namespace Kernel
+} // namespace Mantid
+
+#endif  /* MANTID_KERNEL_COMPOSITEVALIDATOR_H_ */
diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/IValidator.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/IValidator.h
index 1e85c970622ad9d76c8827f41ff890acb3cdd57e..7f96cc1da9339072c19b69b01fd2eeeff5459484 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/IValidator.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/IValidator.h
@@ -55,6 +55,14 @@ public:
     return failure;
   }
 
+  /** Is the property to be shown as "enabled" in the GUI. Default true. */
+  virtual bool isEnabled() const
+  { return true; }
+
+  /** Is the property to be shown in the GUI? Default true. */
+  virtual bool isVisible() const
+  { return true; }
+
   /** The set of allowed values that this validator may have, if a discrete set exists.
    *  Overridden in applicable concrete validators; the base class just returns an empty set.
    *  @return The set of allowed values that this validator may have or an empty set
diff --git a/Code/Mantid/Framework/Kernel/src/CompositeValidator.cpp b/Code/Mantid/Framework/Kernel/src/CompositeValidator.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..63aa6bde4d748f0c69823bf32dfa6bc266bd007c
--- /dev/null
+++ b/Code/Mantid/Framework/Kernel/src/CompositeValidator.cpp
@@ -0,0 +1,15 @@
+#include "MantidKernel/CompositeValidator.h"
+#include "MantidKernel/System.h"
+
+using namespace Mantid::Kernel;
+
+namespace Mantid
+{
+namespace Kernel
+{
+
+
+
+} // namespace Mantid
+} // namespace Kernel
+
diff --git a/Code/Mantid/Framework/Kernel/test/CompositeValidatorTest.h b/Code/Mantid/Framework/Kernel/test/CompositeValidatorTest.h
new file mode 100644
index 0000000000000000000000000000000000000000..47e6da8c9a1ff7c91bf541da310c3695e438aed0
--- /dev/null
+++ b/Code/Mantid/Framework/Kernel/test/CompositeValidatorTest.h
@@ -0,0 +1,45 @@
+#ifndef MANTID_KERNEL_COMPOSITEVALIDATORTEST_H_
+#define MANTID_KERNEL_COMPOSITEVALIDATORTEST_H_
+
+#include <cxxtest/TestSuite.h>
+#include "MantidKernel/Timer.h"
+#include "MantidKernel/System.h"
+#include <iostream>
+#include <iomanip>
+
+#include "MantidKernel/CompositeValidator.h"
+#include "MantidKernel/BoundedValidator.h"
+
+using namespace Mantid;
+using namespace Mantid::Kernel;
+
+class CompositeValidatorTest : public CxxTest::TestSuite
+{
+public:
+
+  /** Is valid does an AND of the components */
+  void test_isValid()
+  {
+    BoundedValidator<int> * val1 = new BoundedValidator<int>(100, 1000);
+    BoundedValidator<int> * val2 = new BoundedValidator<int>(900, 2000);
+    CompositeValidator<int> comp;
+    comp.add(val1);
+    TS_ASSERT(  comp.isValid(150).empty() );
+    TS_ASSERT(  comp.isValid(950).empty() );
+    TS_ASSERT( !comp.isValid(1200).empty() );
+    comp.add(val2);
+    TS_ASSERT( !comp.isValid(150).empty() ); // This one is now blocked by validator 2
+    TS_ASSERT(  comp.isValid(950).empty() );
+    TS_ASSERT( !comp.isValid(1200).empty() );
+
+    // Test cloning
+    IValidator<int> * comp2 = comp.clone();
+    TS_ASSERT( !comp2->isValid(150).empty() );
+    TS_ASSERT(  comp2->isValid(950).empty() );
+  }
+
+};
+
+
+#endif /* MANTID_KERNEL_COMPOSITEVALIDATORTEST_H_ */
+
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSQ2D.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSQ2D.cpp
index 2d6de86aae0a746b4ee2ad351fa8579e044a8ac3..cc5fd43b15c7180a98de39748a259c67650bee5f 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSQ2D.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSQ2D.cpp
@@ -25,7 +25,7 @@ using namespace Geometry;
 
 void EQSANSQ2D::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator),
       "Workspace to calculate I(qx,Qy) from");
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSSensitivityCorrection.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSSensitivityCorrection.cpp
index 6f1b3d9a66c6f40e68593eac5296c1ea90762e03..3a7a1728f22a218c17662261947c9f945065f2fa 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSSensitivityCorrection.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/EQSANSSensitivityCorrection.cpp
@@ -27,7 +27,7 @@ using namespace Geometry;
 
 void EQSANSSensitivityCorrection::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   wsValidator->add(new CommonBinsValidator<>);
diff --git a/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSSolidAngleCorrection.cpp b/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSSolidAngleCorrection.cpp
index 7c2f5ce2eb610192d1855375b5385c21930032f0..5a97c8a98b266d185129a4e66fca5c66400f7627 100644
--- a/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSSolidAngleCorrection.cpp
+++ b/Code/Mantid/Framework/WorkflowAlgorithms/src/SANSSolidAngleCorrection.cpp
@@ -29,7 +29,7 @@ using namespace DataObjects;
 
 void SANSSolidAngleCorrection::init()
 {
-  CompositeValidator<> *wsValidator = new CompositeValidator<>;
+  CompositeWorkspaceValidator<> *wsValidator = new CompositeWorkspaceValidator<>;
   wsValidator->add(new WorkspaceUnitValidator<>("Wavelength"));
   wsValidator->add(new HistogramValidator<>);
   declareProperty(new WorkspaceProperty<>("InputWorkspace","",Direction::Input,wsValidator));
diff --git a/Code/Mantid/MantidQt/API/src/GenericDialog.cpp b/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
index 6a353e83d361381a2dec14f768b991f42c128c2d..8e816fecf3175ca04a656e9d864f69a8d224af6b 100644
--- a/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
+++ b/Code/Mantid/MantidQt/API/src/GenericDialog.cpp
@@ -254,6 +254,7 @@ void GenericDialog::initLayout()
 }
 
 
+//--------------------------------------------------------------------------------------
 /**
 * This slot is called when a browse button is clicked
 * @param widget :: The widget that is associated with the button that was clicked. In this case they are always QLineEdit widgets
@@ -280,6 +281,7 @@ void GenericDialog::browseClicked(QWidget* widget)
 }
 
 
+//--------------------------------------------------------------------------------------
 /** This slot is called when a browse button for multiple files is clicked.
  *
 * @param widget :: The widget that is associated with the button that was clicked. In this case they are always QLineEdit widgets