diff --git a/Framework/API/inc/MantidAPI/AlgorithmManager.h b/Framework/API/inc/MantidAPI/AlgorithmManager.h
index eb892ae5f1e2e5358e98b24a663b92873a7bc1f4..9958a6a491dac479d834904098c540b19911b12c 100644
--- a/Framework/API/inc/MantidAPI/AlgorithmManager.h
+++ b/Framework/API/inc/MantidAPI/AlgorithmManager.h
@@ -53,7 +53,6 @@ public:
 
   IAlgorithm_sptr getAlgorithm(AlgorithmID id) const;
   void removeById(AlgorithmID id);
-  IAlgorithm_sptr newestInstanceOf(const std::string &algorithmName) const;
 
   std::vector<IAlgorithm_const_sptr> runningInstances() const;
   std::vector<IAlgorithm_const_sptr>
diff --git a/Framework/API/src/AlgorithmManager.cpp b/Framework/API/src/AlgorithmManager.cpp
index 76d5cf8a159810648c897d6e382b29b1fb84fcdb..f6b18db76dc33a2c2e8c14d30a7f81a410d487ae 100644
--- a/Framework/API/src/AlgorithmManager.cpp
+++ b/Framework/API/src/AlgorithmManager.cpp
@@ -205,18 +205,6 @@ void AlgorithmManagerImpl::notifyAlgorithmStarting(AlgorithmID id) {
   notificationCenter.postNotification(new AlgorithmStartingNotification(alg));
 }
 
-/// Returns the most recently created instance of the named algorithm (or null
-/// if not found)
-IAlgorithm_sptr
-AlgorithmManagerImpl::newestInstanceOf(const std::string &algorithmName) const {
-  for (auto it = m_managed_algs.rbegin(); it != m_managed_algs.rend(); ++it) {
-    if ((*it)->name() == algorithmName)
-      return *it;
-  }
-
-  return IAlgorithm_sptr();
-}
-
 /// Returns all running (& managed) occurances of the named algorithm, oldest
 /// first
 std::vector<IAlgorithm_const_sptr> AlgorithmManagerImpl::runningInstancesOf(
diff --git a/Framework/API/test/AlgorithmManagerTest.h b/Framework/API/test/AlgorithmManagerTest.h
index 3504b2418812bf1fa7a03eb40dbe1225de1f770c..232d2994967733401b82c19a1854368b75da8aae 100644
--- a/Framework/API/test/AlgorithmManagerTest.h
+++ b/Framework/API/test/AlgorithmManagerTest.h
@@ -329,20 +329,6 @@ public:
     mgr.setMaxAlgorithms(5);
   }
 
-  void test_newestInstanceOf() {
-    auto &am = AlgorithmManager::Instance();
-    am.clear();
-    auto first = am.create("AlgTest");
-    TS_ASSERT_EQUALS(am.newestInstanceOf("AlgTest"), first);
-    auto second = am.create("AlgTest");
-    TS_ASSERT_EQUALS(am.newestInstanceOf("AlgTest"), second);
-    TS_ASSERT(!am.newestInstanceOf("AlgTestSecond"));
-    // Create a different algorithm
-    am.create("AlgTestSecond");
-    // Make sure we still get back the latest instance of other algorithm
-    TS_ASSERT_EQUALS(am.newestInstanceOf("AlgTest"), second);
-  }
-
   void test_runningInstancesOf() {
     AlgorithmManager::Instance().clear();
     // Had better return empty at this point
diff --git a/Framework/Algorithms/inc/MantidAlgorithms/RecordPythonScript.h b/Framework/Algorithms/inc/MantidAlgorithms/RecordPythonScript.h
index 65041e49b70fc656c63141079d850d2ff7d18a5b..58a844e0c5eb01c795019bd5e34aab82f5737497 100644
--- a/Framework/Algorithms/inc/MantidAlgorithms/RecordPythonScript.h
+++ b/Framework/Algorithms/inc/MantidAlgorithms/RecordPythonScript.h
@@ -13,7 +13,7 @@
 namespace Mantid {
 namespace Algorithms {
 
-/** RecordPythonScript : TODO: DESCRIPTION
+/** RecordPythonScript : 
 
   An Algorithm to generate a Python script file to reproduce the history of a
   workspace.
diff --git a/Framework/PythonInterface/mantid/api/src/Exports/AlgorithmManager.cpp b/Framework/PythonInterface/mantid/api/src/Exports/AlgorithmManager.cpp
index 9c4b374f962326c2331b27b00fbee7461a3a0f95..1c244daaf1e18d47c1a6fcc3fc905e7eb9ae992e 100644
--- a/Framework/PythonInterface/mantid/api/src/Exports/AlgorithmManager.cpp
+++ b/Framework/PythonInterface/mantid/api/src/Exports/AlgorithmManager.cpp
@@ -116,9 +116,6 @@ void export_AlgorithmManager() {
            "Return the algorithm instance identified by the given id.")
       .def("removeById", &removeById, (arg("self"), arg("id_holder")),
            "Remove an algorithm from the managed list")
-      .def("newestInstanceOf", &AlgorithmManagerImpl::newestInstanceOf,
-           (arg("self"), arg("algorithm_name")),
-           "Returns the newest created instance of the named algorithm")
       .def("runningInstancesOf", &runningInstancesOf,
            (arg("self"), arg("algorithm_name")),
            "Returns a list of managed algorithm instances that are "
diff --git a/Framework/PythonInterface/mantid/simpleapi.py b/Framework/PythonInterface/mantid/simpleapi.py
index 0edcbd34fa2d7e984abe94dd8522263ca11f7931..d8b913adcf4599ff74f4b1b69e11a77edd004866 100644
--- a/Framework/PythonInterface/mantid/simpleapi.py
+++ b/Framework/PythonInterface/mantid/simpleapi.py
@@ -1315,7 +1315,7 @@ def set_properties_dialog(algm_object, *args, **kwargs):
 
     # finally run the configured dialog
     import mantidplot
-    dialog_accepted = mantidplot.createScriptInputDialog(algm_object.name(), presets, message,
+    dialog_accepted = mantidplot.createScriptInputDialog(algm_object, presets, message,
                                                          enabled_list, disabled_list)
     if not dialog_accepted:
         raise RuntimeError('Algorithm input cancelled')
diff --git a/MantidPlot/CMakeLists.txt b/MantidPlot/CMakeLists.txt
index 1a778bbf120bb48a9ba8aa87ae7e7da71efa3957..00060cba8c483f592a2f8c0d7ff0aa441da7dc59 100644
--- a/MantidPlot/CMakeLists.txt
+++ b/MantidPlot/CMakeLists.txt
@@ -823,6 +823,10 @@ target_include_directories(MantidPlot PRIVATE
 target_compile_options( MantidPlot PRIVATE
   $<$<AND:$<CXX_COMPILER_ID:GNU>,$<VERSION_GREATER_EQUAL:$<CXX_COMPILER_VERSION>,8.0>>:-Wno-cast-function-type> )
 
+set (BOOST_LIBRARIES_MANTIDPLOT ${Boost_LIBRARIES})
+find_package(BoostPython REQUIRED)
+set (BOOST_LIBRARIES_MANTIDPLOT "${BOOST_LIBRARIES_MANTIDPLOT};${Boost_LIBRARIES}")
+
 # Library dependencies
 target_link_libraries(MantidPlot
                       LINK_PRIVATE
@@ -835,7 +839,7 @@ target_link_libraries(MantidPlot
                       MantidQtWidgetsInstrumentViewQt4
                       MantidQtWidgetsSliceViewerQt4
                       MantidQtWidgetsSpectrumViewerQt4
-                      ${Boost_LIBRARIES}
+                      ${BOOST_LIBRARIES_MANTIDPLOT}
                       ${POCO_LIBRARIES}
                       ${GSL_LIBRARIES}
                       ${MUPARSER_LIBRARIES}
diff --git a/MantidPlot/src/Mantid/MantidUI.cpp b/MantidPlot/src/Mantid/MantidUI.cpp
index e5e637dc06283ada586caeda50b7b755616ebb0e..b90cee8621f44b52db10610d3859ce7aab7f9bb8 100644
--- a/MantidPlot/src/Mantid/MantidUI.cpp
+++ b/MantidPlot/src/Mantid/MantidUI.cpp
@@ -2363,13 +2363,11 @@ MantidMatrix *MantidUI::getMantidMatrix(const QString &wsName) {
   return m;
 }
 
-bool MantidUI::createScriptInputDialog(const QString &alg_name,
+bool MantidUI::createScriptInputDialog(const IAlgorithm_sptr &alg,
                                        const QString &preset_values,
                                        const QString &optional_msg,
                                        const QStringList &enabled,
                                        const QStringList &disabled) {
-  IAlgorithm_sptr alg =
-      AlgorithmManager::Instance().newestInstanceOf(alg_name.toStdString());
   if (!alg) {
     return false;
   }
diff --git a/MantidPlot/src/Mantid/MantidUI.h b/MantidPlot/src/Mantid/MantidUI.h
index 93f5ce9ddb631ecc8dfdfb70712c131368ccada8..0004c772027a5104cdea9641a55c6bfcb9a7e68f 100644
--- a/MantidPlot/src/Mantid/MantidUI.h
+++ b/MantidPlot/src/Mantid/MantidUI.h
@@ -377,7 +377,7 @@ public:
   MantidMatrix *getMantidMatrix(const QString &wsName);
 
   void setIsRunning(bool running);
-  bool createScriptInputDialog(const QString &alg_name,
+  bool createScriptInputDialog(const Mantid::API::IAlgorithm_sptr &alg,
                                const QString &preset_values,
                                const QString &optional_msg,
                                const QStringList &enabled,
diff --git a/MantidPlot/src/qti.sip b/MantidPlot/src/qti.sip
index 8b981b19ef60da666026f2015ad2219152f59551..7f5cf59d396d46ee2496fb6100f6914a56d76383 100644
--- a/MantidPlot/src/qti.sip
+++ b/MantidPlot/src/qti.sip
@@ -1466,6 +1466,7 @@ class MantidUI: QObject
 {
 %TypeHeaderCode
 #include "src/Mantid/MantidUI.h"
+#include <boost/python/extract.hpp>
 %End
 %ConvertToSubClassCode
 // we have to do this to override casting in qt/qobject.sip (PyQt 3.16)
@@ -1510,8 +1511,10 @@ public:
   Table* createDetectorTable(const QString & wsName);
 
   void setIsRunning(bool running);
-  bool createScriptInputDialog(const QString &, const QString &, const QString&, const QStringList&, const QStringList&);
-
+  bool createScriptInputDialog(SIP_PYOBJECT, const QString &, const QString&, const QStringList&, const QStringList&);
+%MethodCode
+  sipCpp->createScriptInputDialog(boost::python::extract<Mantid::API::IAlgorithm_sptr>(a0), *a1, *a2, *a3, *a4);
+%End
    MantidQt::MantidWidgets::FitPropertyBrowser* fitFunctionBrowser();
 private:
   MantidUI(const MantidUI &);