diff --git a/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_model.py b/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_model.py
index e11dd4600bcaac8b8108ff66cc26ef30299d3c67..395c2f8f58f81bc3911c91752e520f73b73b3531 100644
--- a/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_model.py
+++ b/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_model.py
@@ -39,8 +39,7 @@ class CoLoadModel(lutils.LModel):
 
     def add_runs(self, l, r, suffix):
         # prevent new suffix being appended to old one
-        l = l[:l.rfind("_")] if l.endswith(")") else l
-        out = "{}_({})".format(l, suffix)
+        out = lutils.replace_workspace_name_suffix(l, suffix)
         mantid.Plus(l, r, OutputWorkspace=out)
         return out
 
diff --git a/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_utils.py b/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_utils.py
index 6e1bf7a1d2de8e9be81ff517aba47c0c484b8af8..f7f2bd4fa411e8dba369c73517360bbfddc245bf 100644
--- a/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_utils.py
+++ b/scripts/Muon/GUI/ElementalAnalysis/LoadWidget/load_utils.py
@@ -121,6 +121,11 @@ def get_filename(path, run):
         return None
 
 
+def replace_workspace_name_suffix(name, suffix):
+    detector, run_type, end = name.split("_", 3)[:3]
+    return "_".join([detector, run_type, end, suffix])
+
+
 def flatten_run_data(*workspaces):
     out = []
     for ws in workspaces:
diff --git a/scripts/test/Muon/LoadWidgetModel_test.py b/scripts/test/Muon/LoadWidgetModel_test.py
index a38d526654313a5293b142cbc25fcb90b718cb0a..f5add6995caf56208cc317d8fee6775c7087b739 100644
--- a/scripts/test/Muon/LoadWidgetModel_test.py
+++ b/scripts/test/Muon/LoadWidgetModel_test.py
@@ -13,7 +13,7 @@ class LoadUtilsTest(unittest.TestCase):
         self.bad_path = r"test\path\to\ral012345.rooth2042"
         self.test_run = 5
         self.test_ws_name = "1_Delayed_rooth2020_{}".format(self.test_run)
-        self.var_ws_name = "{}_Total_rooth2020_{}"
+        self.var_ws_name = "{}_Delayed_rooth2020_{}"
         self.test_ws_names = [
             self.var_ws_name.format(
                 x, self.test_run) for x in range(
@@ -69,6 +69,13 @@ class LoadUtilsTest(unittest.TestCase):
             workspaces.append(name)
         assert lutils.flatten_run_data(workspaces) == [self.test_ws_names]
 
+    def test_replace_workspace_name_suffix(self):
+        tests = {self.test_ws_name: "suffix", "_".join(
+            [self.test_ws_name, "test"]): "suffix"}
+        for w, suffix in iteritems(tests):
+            assert lutils.replace_workspace_name_suffix(
+                w, suffix) == self.var_ws_name.format(1, suffix)
+
 
 if __name__ == "__main__":
     unittest.main()