diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
index baf17f78e250ac2d8e9c0cb1f8a65e85ff9df9dc..ba8168f87f5c91d70e57d83cace0f09521bb4d53 100644
--- a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
+++ b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
@@ -285,6 +285,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
     const std::vector<std::string> &parameterNames) {
   auto pifp =
       AlgorithmManager::Instance().create("ProcessIndirectFitParameters");
+  pifp->setChild(true);
   pifp->setAlwaysStoreInADS(false);
   pifp->setProperty("InputWorkspace", parameterWorkspace);
   pifp->setProperty("ColumnX", "axis-1");
diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
index d3d640f72fb04a8896f1d2e8f7cf56380df44e58..b23ca868ef4ee7f56c2b508a2b602f96ac804f08 100644
--- a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
+++ b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
@@ -170,6 +170,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
     const std::vector<std::string> &parameterNames) {
   auto pifp =
       AlgorithmManager::Instance().create("ProcessIndirectFitParameters");
+  pifp->setChild(true);
   pifp->setAlwaysStoreInADS(false);
   pifp->setProperty("InputWorkspace", parameterWorkspace);
   pifp->setProperty("ColumnX", "axis-1");
@@ -179,12 +180,12 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
 }
 
 ITableWorkspace_sptr transposeFitTable(ITableWorkspace_sptr table,
-                                       IFunction_sptr function,
+                                       const IFunction &function,
                                        const std::string &yAxisType) {
   auto transposed = WorkspaceFactory::Instance().createTable();
   transposed->addColumn(yAxisType, "axis-1");
 
-  auto parameters = function->getParameterNames();
+  auto parameters = function.getParameterNames();
   for (const auto &parameter : parameters) {
     transposed->addColumn("double", parameter);
     transposed->addColumn("double", parameter + "_Err");
diff --git a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
index 63b4466292b1472d02db8f26e5e6f155d3613e00..e345e8bebf637b54da71b5a349ab1f90b0a34b4f 100644
--- a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
+++ b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
@@ -92,9 +92,10 @@ std::vector<T> getColumnValues(Column const &column, std::size_t startRow,
 std::vector<double> getNumericColumnValuesOrIndices(Column const &column,
                                                     std::size_t startRow,
                                                     std::size_t endRow) {
+  auto const length = startRow >= endRow ? 1 + startRow - endRow : 0;
   if (column.isNumber())
     return getColumnValues<double>(column, startRow, endRow);
-  return getIncrementingSequence(0.0, endRow - startRow + 1);
+  return getIncrementingSequence(0.0, length);
 }
 
 std::string getColumnName(Column_const_sptr column) { return column->name(); }