diff --git a/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h b/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
index 33b60325a95d3f72245ac7fb7129c7d465aa9be2..d0b239b8c332a0c180808d8f21fbcd4b1efb8827 100644
--- a/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
+++ b/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
@@ -1,15 +1,12 @@
 #ifndef MANTID_KERNEL_ALGORITHMMANAGER_H_
 #define MANTID_KERNEL_ALGORITHMMANAGER_H_
 
-
-
-
-
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
 #include "boost/shared_ptr.hpp"
 #include <vector>
+#include <string>
 #include "MantidAPI/DllExport.h"
 #include "MantidKernel/Logger.h"
 #include "MantidKernel/SingletonHolder.h"
@@ -70,6 +67,8 @@ namespace Mantid
 			*  @return The number of registered algorithms
 			*/
 			int size() const { return regAlg.size(); }
+			
+			const std::vector<std::string> getNames() const;
 
 		private:
 			friend struct Mantid::Kernel::CreateUsingNew<AlgorithmManagerImpl>;
diff --git a/Code/Mantid/API/src/AlgorithmManager.cpp b/Code/Mantid/API/src/AlgorithmManager.cpp
index 8f99d12e568afad5fc9b1b57e942f2bd1e5e5dcb..8d862e095f23b128e535909e92b1c3a671c3fdf8 100644
--- a/Code/Mantid/API/src/AlgorithmManager.cpp
+++ b/Code/Mantid/API/src/AlgorithmManager.cpp
@@ -40,6 +40,22 @@ namespace Mantid
     {
       return AlgorithmFactory::Instance().create(algName,version);                // Throws on fail:
     }
+    
+    /** Gets the names of all the currently available algorithms
+    *
+    *  \return A pointer to the created algorithm
+    */
+    const std::vector<std::string> AlgorithmManagerImpl::getNames() const
+    {
+	std::vector<std::string> names;
+	    
+	for (int i=0; i < regAlg.size(); ++i)
+	{
+		names.push_back(regAlg[i]->name());
+	}
+	    
+        return names;              
+    }
 
     /** Creates an instance of an algorithm
     *
diff --git a/Code/Mantid/API/test/AlgorithmManagerTest.h b/Code/Mantid/API/test/AlgorithmManagerTest.h
index 5a8cedeb13adfb3183e53fc82097a8f1f5151c3a..a56631c5b810b6a6fcbe2db28f3c5bb701c78f07 100644
--- a/Code/Mantid/API/test/AlgorithmManagerTest.h
+++ b/Code/Mantid/API/test/AlgorithmManagerTest.h
@@ -5,6 +5,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include <stdexcept>
+#include <vector>
 
 using namespace Mantid::API;
 
@@ -91,6 +92,15 @@ public:
     TS_ASSERT_THROWS(AlgorithmManager::Instance().create("AlgTest",3), std::runtime_error )
     TS_ASSERT_THROWS(AlgorithmManager::Instance().create("aaaaaa"), std::runtime_error )
   }
+  
+  void testGetNames()
+  {
+	AlgorithmManager::Instance().clear();
+	TS_ASSERT_THROWS_NOTHING( AlgorithmManager::Instance().create("AlgTest") );
+	TS_ASSERT_THROWS_NOTHING(AlgorithmManager::Instance().create("AlgTestSecond") );
+	std::vector<std::string> names = AlgorithmManager::Instance().getNames();
+	TS_ASSERT_EQUALS(names.size(), 2)
+  }
 
   void testClear()
   {
diff --git a/Code/Mantid/Kernel/test/LibraryManagerTest.h b/Code/Mantid/Kernel/test/LibraryManagerTest.h
index c29b4fcf081799c2e6528e2fcd8d5dcaa969584a..4e6081deb24d913c9c260c24dd200eec6d5ab157 100644
--- a/Code/Mantid/Kernel/test/LibraryManagerTest.h
+++ b/Code/Mantid/Kernel/test/LibraryManagerTest.h
@@ -2,9 +2,12 @@
 #define MANTID_LIBRARYMANAGERTEST_H_
 
 #include <iostream>
+#include <string>
+#include <vector>
 #include <cxxtest/TestSuite.h>
 
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/LibraryManager.h"
 #include "MantidKernel/ConfigService.h"
 
diff --git a/Code/Mantid/UserAlgorithms/.sconsign.dblite b/Code/Mantid/UserAlgorithms/.sconsign.dblite
index 250eebe26be4f2bcbb2bdf5fc587734fd2ad6ae2..d7231aa6506013b1535d060c2ef7ad744c2c74ae 100644
Binary files a/Code/Mantid/UserAlgorithms/.sconsign.dblite and b/Code/Mantid/UserAlgorithms/.sconsign.dblite differ
diff --git a/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp b/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
index 0e24535f56fc6a012026f4c0767ed04677ad2e6f..df7f0834f1772ac48267a7413060bf0b744ec841 100644
--- a/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
+++ b/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
@@ -5,7 +5,7 @@ namespace Mantid
 namespace Algorithms
 {
 
-
+DECLARE_ALGORITHM(HelloWorldAlgorithm);
 
 }
 }