diff --git a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py
index a17f95fe41f7ca9b1ffe0c0da6c46d2af43fa163..a1ced72bdcc739ffe51893091afbd5c641b296b4 100644
--- a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py
+++ b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_presenter.py
@@ -48,6 +48,8 @@ class GroupingTabPresenter(object):
         self.guessAlphaObserver = GroupingTabPresenter.GuessAlphaObserver(self)
         self.pairing_table_widget.guessAlphaNotifier.add_subscriber(self.guessAlphaObserver)
 
+        self.update_thread = self.create_update_thread()
+
     def show(self):
         self._view.show()
 
@@ -129,8 +131,6 @@ class GroupingTabPresenter(object):
         self._model.show_all_groups_and_pairs()
 
     def handle_update_all_clicked(self):
-
-        self.update_thread = self.create_update_thread()
         self.update_thread.threadWrapperSetUp(self.disable_editing,
                                               self.enable_editing,
                                               self._view.display_warning_box)
diff --git a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py
index 32d990573105fd27dd47c7ebb6af174071ee7ba2..094eb5923b92cf4fdc223a1d894d0a333042d79c 100644
--- a/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py
+++ b/scripts/Muon/GUI/Common/grouping_tab_widget/grouping_tab_widget_view.py
@@ -67,10 +67,8 @@ class GroupingTabView(QtGui.QWidget):
         self.vertical_layout.setObjectName("verticalLayout")
         self.vertical_layout.addItem(self.horizontal_layout)
         self.vertical_layout.addItem(self.horizontal_layout_description)
-        if self._grouping_table:
-            self.vertical_layout.addWidget(self._grouping_table)
-        if self._pairing_table:
-            self.vertical_layout.addWidget(self._pairing_table)
+        self.vertical_layout.addWidget(self._grouping_table)
+        self.vertical_layout.addWidget(self._pairing_table)
         self.vertical_layout.addItem(self.horizontal_layout_base)
 
         self.setLayout(self.vertical_layout)
diff --git a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py
index 6f559cc9a14ca9dea567b966240aacef2a29ef13..3fe86fa99343ada0a5bfdfaddb334c9bf82c77f7 100644
--- a/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py
+++ b/scripts/Muon/GUI/Common/pairing_table_widget/pairing_table_widget_presenter.py
@@ -6,6 +6,7 @@ from Muon.GUI.Common.muon_pair import MuonPair
 from Muon.GUI.Common.utilities.run_string_utils import valid_name_regex, valid_alpha_regex
 from Muon.GUI.Common.observer_pattern import Observable
 
+pair_columns = ['pair_name', 'group_1', 'group_2', 'alpha']
 
 class PairingTablePresenter(object):
 
@@ -54,15 +55,15 @@ class PairingTablePresenter(object):
         table = self._view.get_table_contents()
         changed_item = table[row][col]
         update_model = True
-        if col == 0 and not self.validate_pair_name(changed_item):
+        if pair_columns[col] == 'pair_name' and not self.validate_pair_name(changed_item):
             update_model = False
-        if col == 1:
-            if changed_item == self._view.get_table_item_text(row, 2):
-                table[row][2] = self._model.pairs[row].forward_group
-        if col == 2:
-            if changed_item == self._view.get_table_item_text(row, 1):
-                table[row][1] = self._model.pairs[row].backward_group
-        if col == 3:
+        if pair_columns[col] == 'group_1':
+            if changed_item == self._view.get_table_item_text(row, pair_columns.index('group_2')):
+                table[row][pair_columns.index('group_2')] = self._model.pairs[row].forward_group
+        if pair_columns[col] == 'group_2':
+            if changed_item == self._view.get_table_item_text(row, pair_columns.index('group_1')):
+                table[row][pair_columns.index('group_1')] = self._model.pairs[row].backward_group
+        if pair_columns[col] == 'alpha':
             if not self.validate_alpha(changed_item):
                 update_model = False
             else:
diff --git a/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py b/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py
index 29dfd74fd746f3b8da998ed2832eea723af3e1ba..bb604039d34f67e44d70d972bc752d105f270c5b 100644
--- a/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py
+++ b/scripts/test/Muon/grouping_tab/grouping_tab_presenter_test.py
@@ -68,6 +68,7 @@ class GroupingTabPresenterTest(unittest.TestCase):
     # TESTS
     # ------------------------------------------------------------------------------------------------------------------
     def test_context_menu_add_pair_adds_pair_if_two_groups_selected(self):
+        self.assertEqual(self.pairing_table_view.num_rows(), 2)
         self.grouping_table_view._get_selected_row_indices = mock.Mock(return_value=[0, 1])
         self.grouping_table_view.contextMenuEvent(0)
         self.grouping_table_view.add_pair_action.triggered.emit(True)
@@ -153,11 +154,13 @@ class GroupingTabPresenterTest(unittest.TestCase):
             self.assertEqual(mock_save.call_args[0][-1], "grouping.xml")
 
     def test_update_all_calculates_groups_and_pairs(self):
-        self.presenter.thread_manager = mock.MagicMock()
+        self.presenter.update_thread = mock.MagicMock()
         self.view.update_button.clicked.emit(True)
 
-        self.presenter.thread_manager.process.assert_called_once_with(self.presenter.listener,
-                                                                      self.presenter.calculate_all_data, 0, [1])
+        self.presenter.update_thread.threadWrapperSetUp.assert_called_once_with(self.presenter.disable_editing,
+                                                                                self.presenter.enable_editing,
+                                                                                self.view.display_warning_box)
+        self.presenter.update_thread.start.assert_called_once_with()
 
     def test_removing_group_removes_linked_pairs(self):
         self.add_three_groups()