diff --git a/Framework/API/src/Algorithm.cpp b/Framework/API/src/Algorithm.cpp
index 18301fac783588c086af43b790b2c23d5369d76e..7bf4718f14e411bddaa53c2fe382185b037c1d88 100644
--- a/Framework/API/src/Algorithm.cpp
+++ b/Framework/API/src/Algorithm.cpp
@@ -1380,14 +1380,14 @@ bool Algorithm::doCallProcessGroups(
 
       // We need to find the workspaces to add the history to.
       if (outputWorkspaces.size() == 0 && inputWorkspaces.size() == 0) {
-        for (auto ws : m_groupWorkspaces) {
-          outputWorkspaces.emplace_back(ws);
-        }
+        outputWorkspaces.insert(outputWorkspaces.end(),
+                                m_groupWorkspaces.begin(),
+                                m_groupWorkspaces.end());
       } else if (outputWorkspaces.size() == 0) {
         outputWorkspaces = inputWorkspaces;
       }
 
-      for (auto outputWorkspace : outputWorkspaces) {
+      for (const auto &outputWorkspace : outputWorkspaces) {
         auto outputGroupWS =
             boost::dynamic_pointer_cast<WorkspaceGroup>(outputWorkspace);
         if (outputGroupWS) {