diff --git a/Framework/Kernel/src/CompositeValidator.cpp b/Framework/Kernel/src/CompositeValidator.cpp
index 770bbdc0261f37bf6c4ce59beb59a66d46492c57..06d35a022ec3a7cbf3770d913c70998d388c6cdf 100644
--- a/Framework/Kernel/src/CompositeValidator.cpp
+++ b/Framework/Kernel/src/CompositeValidator.cpp
@@ -1,4 +1,5 @@
 #include "MantidKernel/CompositeValidator.h"
+#include <unordered_set>
 
 using namespace Mantid::Kernel;
 
@@ -11,13 +12,13 @@ CompositeValidator::CompositeValidator() : IValidator(), m_children() {}
 CompositeValidator::~CompositeValidator() { m_children.clear(); }
 
 /**
- * The allowed values for the composite vaidator. This returns
+ * The allowed values for the composite validator. This returns
  * the intersection of the allowedValues for the child validators
  * @return
  */
 std::vector<std::string> CompositeValidator::allowedValues() const {
   std::set<std::string> elem_unique;
-  std::multiset<std::string> elem_all;
+  std::unordered_multiset<std::string> elem_all;
   // how many validators return non-empty list of allowed values
   int n_combinations(0);
   for (const auto &itr : m_children) {