diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
index 0a838d25b45678053447ec750581ce6323c6b4a6..b388acb0ac34ec9cd1837a2ddc6869ab42551e08 100644
--- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
+++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/ConfigService.h
@@ -189,6 +189,10 @@ namespace Mantid
 
       /// Load facility information from instrumentDir/Facilities.xml file 
       void updateFacilities(const std::string& facilityName = "");
+      /// Get the list of facilities
+      const std::vector<FacilityInfo*> getFacilities()const;
+      /// Get the list of facility names
+      const std::vector<std::string> getFacilityNames()const;
       /// Get the default facility
       const FacilityInfo& getFacility()const;
       /// Get a facility
diff --git a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
index ffeea231fefb2fcd0c67e1a08eea1b22f76ce8c3..00582d3ed6e4588eb9fa0e3b8c0974484fa40f1e 100644
--- a/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
+++ b/Code/Mantid/Framework/Kernel/src/ConfigService.cpp
@@ -1566,6 +1566,35 @@ const InstrumentInfo & ConfigServiceImpl::getInstrument(const std::string& instr
   throw Exception::NotFoundError("Instrument", instrumentName);
 }
 
+/** Gets a vector of the facility Information objects
+ * @return A vector of FacilityInfo objects
+ */
+const std::vector<FacilityInfo*> ConfigServiceImpl::getFacilities() const
+{
+  return m_facilities;
+}
+
+/** Gets a vector of the facility names
+ * @return A vector of the facility Names
+ */
+const std::vector<std::string> ConfigServiceImpl::getFacilityNames()const
+{
+  auto names = std::vector<std::string>(m_facilities.size());
+  auto itFacilities = m_facilities.begin();
+  auto itNames = names.begin();
+  for (; itFacilities != m_facilities.end(); ++itFacilities,++itNames)
+  {
+    *itNames = (**itFacilities).name();
+  }
+  return names;
+}
+
+/** Get the default facility
+ * @return the facility information object
+ */
+const FacilityInfo& ConfigServiceImpl::getFacility() const
+{
+
 /** Get the default facility
  * @return the facility information object
  */
diff --git a/Code/Mantid/Framework/Kernel/src/MultiFileNameParser.cpp b/Code/Mantid/Framework/Kernel/src/MultiFileNameParser.cpp
index 714f911df3e7ceb9b7b6aec4dd9d41e81e5a84eb..1f2e77a7db24428903c4b401cc3ad7b0b8c79f32 100644
--- a/Code/Mantid/Framework/Kernel/src/MultiFileNameParser.cpp
+++ b/Code/Mantid/Framework/Kernel/src/MultiFileNameParser.cpp
@@ -198,7 +198,7 @@ namespace Kernel
       m_validInstNames()
     {
       ConfigServiceImpl & config = ConfigService::Instance();
-
+      FacilityInfo facility = config.getFacility();
       std::string supportedFacilities = config.getString("supported.facilities");
 
       std::vector<std::string> allFacilityNames;
diff --git a/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h b/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
index 3a2ae99896677a380ae9554fd6d1bf59ac09d6c9..7d33371fcfa0e1b778fc5289341601666079ed12 100644
--- a/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
+++ b/Code/Mantid/Framework/Kernel/test/ConfigServiceTest.h
@@ -115,6 +115,23 @@ public:
 //    // Non existent facility
 //    TS_ASSERT_THROWS(ConfigService::Instance().setFacility(""), Mantid::Kernel::Exception::NotFoundError);
 
+  }
+
+  void testFacilityList()
+  {
+    std::vector<FacilityInfo*> facilities = ConfigService::Instance().getFacilities();
+    std::vector<std::string> names = ConfigService::Instance().getFacilityNames();
+
+    TS_ASSERT_LESS_THAN(0,names.size());
+    TS_ASSERT_EQUALS(facilities.size(),names.size());
+    auto itFacilities = m_facilities.begin();
+    auto itNames = names.begin();
+    for (; itFacilities != m_facilities.end(); ++itFacilities,++itNames)
+    {
+      TS_ASSERT_EQUALS(*itNames, (**itFacilities).name());
+    }
+
+
   }
 
   void testInstrumentSearch()