diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index 98dacdb67fe16fe3570b6c1ab6602f7097544f60..b4c06121d66b8627b5c22f0227681619c5a011eb 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -2324,7 +2324,11 @@ def Tcsend_common(tc_bytes, apid, st, sst, sleep=0.2, pool_name='LIVE'):
     ssc = counters[int(str(apid), 0)]
     # increase the SSC counter
     counters[int(str(apid), 0)] += 1
-    logger.debug('TC(%s,%s) sent to APID %s @ %f' % (st, sst, apid, t))
+    #logger.info('TC(%s,%s) sent to APID %s @ %f' % (st, sst, apid, t))
+    # More specific Logging format that is compatible with the TST
+    log_dict = dict([('st', st),('sst', sst),('ssc', ssc),('apid', apid),('timestamp', t)])
+    json_string = '{} {}'.format('#SENT TC', json.dumps(log_dict))
+    logger.info(json_string)
     time.sleep(sleep)
     return apid, ssc, t
 
diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py
index 72c456bc52cc3fc2954d0340034711546f73382f..cdd2be5f0dfaefac56aef4885f8f6c1b2bb8386c 100644
--- a/Ccs/poolview_sql.py
+++ b/Ccs/poolview_sql.py
@@ -1663,7 +1663,7 @@ class TMPoolView(Gtk.Window):
         for row in model:
             if row[0] in self.currently_selected:
                 try:
-                    self.selection.select_path(model.get_path(model.get_iter(row[0] - self.offset - 1)))
+                    self.selection.select_path(model.get_path(model.get_iter(row[0] - self.offset)))
                 except ValueError:
                     pass
                 except TypeError:
@@ -2770,8 +2770,7 @@ class TMPoolView(Gtk.Window):
     # Whole function is now done in Poolmgr
     def load_pool(self, widget=None, filename=None, brute=False, force_db_import=False, protocol='PUS'):
         if cfl.is_open('poolmanager', cfl.communication['poolmanager']):
-            #poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
-            pass
+            poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
         else:
             cfl.start_pmgr(True, '--nogui')
             #path_pm = os.path.join(confignator.get_option('paths', 'ccs'), 'pus_datapool.py')
@@ -3140,7 +3139,13 @@ class TMPoolView(Gtk.Window):
         return
 
     def stop_recording(self, widget=None, pool_name=None):
-        poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
+        if not self.active_pool_info.live:
+            return False
+
+        if cfl.is_open('poolmanager', cfl.communication['poolmanager']):
+            poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
+        else:
+            poolmgr = None
 
         if pool_name is None:
             pool_name = self.active_pool_info.pool_name
@@ -3152,7 +3157,8 @@ class TMPoolView(Gtk.Window):
 
         if self.active_pool_info.pool_name == pool_name:
             self.active_pool_info = ActivePoolInfo(pool_name, self.active_pool_info.modification_time, pool_name, False)
-            poolmgr.Functions('loaded_pools_func', pool_name, self.active_pool_info)
+            if poolmgr:
+                poolmgr.Functions('loaded_pools_func', pool_name, self.active_pool_info)
 
         else:
             # Check if the pool name does exist
@@ -3165,13 +3171,15 @@ class TMPoolView(Gtk.Window):
 
             pinfo_modification_time = int(pinfo[2])
             #poolmgr.Functions('loaded_pools_func', pool_name, ActivePoolInfo(pool_name, pinfo_modification_time, pool_name, False), ignore_reply=True)
-            poolmgr.Functions('loaded_pools_func', pool_name,
-                              ActivePoolInfo(pool_name, pinfo_modification_time, pool_name, False))
+            if poolmgr:
+                poolmgr.Functions('loaded_pools_func', pool_name,
+                                  ActivePoolInfo(pool_name, pinfo_modification_time, pool_name, False))
 
 
         # Update the Poolmanager GUI
         #poolmgr.Functions('disconnect', pool_name, ignore_reply = True)
-        poolmgr.Functions('disconnect', pool_name)
+        if poolmgr:
+            poolmgr.Functions('disconnect', pool_name)
 
         iter = self.pool_selector.get_active_iter()
         mod = self.pool_selector.get_model()
@@ -3181,20 +3189,42 @@ class TMPoolView(Gtk.Window):
 
         return
 
-    def stop_all_recording(self):
+    def stop_recording_info(self, pool_name=None):
         """
-        Poolmanager is closed and therefore all "Live" Pools become static pools
-        Functions is normally called by the poolmanager when it is closing
+        Connection is closed by the Poolmanager, Informes the Pool Viewer to stop updating or
+        Poolmanager is closed and therefore all Pools become static pools
+        Functions is normally called by the poolmanager when it is closing or disconnecting any connections
         """
+
+        # if no pool name was specified, Change all connections to static
+        if not pool_name:
+            mod = self.pool_selector.get_model()
+            self.active_pool_info = ActivePoolInfo(self.active_pool_info.filename,
+                                                   self.active_pool_info.modification_time,
+                                                   self.active_pool_info.pool_name, False)
+            #self.active_pool_info.live = False
+            for row in mod:
+                mod[row.iter][1] = self.live_signal[self.active_pool_info.live]
+                self.stop_butt.set_sensitive(False)
+
         # If active pool is live change it to static
-        if self.active_pool_info.live:
-            self.active_pool_info = ActivePoolInfo(self.active_pool_info.file_name, self.active_pool_info.modification_time, self.active_pool_info.pool_name, False)
+        elif self.active_pool_info.pool_name == pool_name:
+            self.active_pool_info = ActivePoolInfo(self.active_pool_info.filename, self.active_pool_info.modification_time, self.active_pool_info.pool_name, False)
+
+            iter = self.pool_selector.get_active_iter()
+            mod = self.pool_selector.get_model()
+            if mod is not None:
+                mod[iter][1] = self.live_signal[self.active_pool_info.live]
+                self.stop_butt.set_sensitive(False)
+
+        # Specific Pool is no longer LIVe
+        else:
+            mod = self.pool_selector.get_model()
+            for row in mod:
+                if mod[row.iter][0] == pool_name:
+                    mod[row.iter][1] = self.live_signal[self.active_pool_info.live]
+                    self.stop_butt.set_sensitive(False)
 
-        iter = self.pool_selector.get_active_iter()
-        mod = self.pool_selector.get_model()
-        if mod is not None:
-            mod[iter][1] = self.live_signal[self.active_pool_info.live]
-            self.stop_butt.set_sensitive(False)
         return
 
     def refresh_treeview(self, pool_name):
@@ -3226,17 +3256,16 @@ class TMPoolView(Gtk.Window):
 
         #if not self.active_pool_info.live:
         #    return False
-
-        if cfl.is_open('poolmanager', cfl.communication['poolmanager']):
-            poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
-        else:
-            return False
+        #if cfl.is_open('poolmanager', cfl.communication['poolmanager']):
+        #    poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager'])
+        #else:
+        #    return False
 
         # Get value of dict connections, with key self.active... and key recording, True to get
-        pool_connection_recording = poolmgr.Dictionaries('connections', self.active_pool_info.pool_name, 'recording',
-                                                         True)
+        #pool_connection_recording = poolmgr.Dictionaries('connections', self.active_pool_info.pool_name, 'recording',
+        #                                                 True)
         #pool_connection = poolmgr.Dictionaries('connections', self.active_pool_info.pool_name)
-        if pool_connection_recording:
+        if self.active_pool_info.live:
         #if self.pool.connections[self.active_pool_info.pool_name]['recording']:
             rows = self.get_current_pool_rows()
             if rows.first() is None:
@@ -3252,7 +3281,7 @@ class TMPoolView(Gtk.Window):
             else:
                 return True
         else:
-            self.stop_recording()
+            #self.stop_recording()
             return False
 
     def dbtest(self, pool_name, sleep=0.1):
diff --git a/Ccs/pus_datapool.py b/Ccs/pus_datapool.py
index 591c5d3a9605d443397ce67a2272ebdd67378791..0346e7ceb7f5f5fe6f6122c54f4c0b66f1e70935 100644
--- a/Ccs/pus_datapool.py
+++ b/Ccs/pus_datapool.py
@@ -17,7 +17,7 @@ import DBus_Basic
 import dbus
 import dbus.service
 from dbus.mainloop.glib import DBusGMainLoop
-
+#cfl.Tcsend_DB('SASW ModHkPeriodCmd', 1, 8, pool_name='new_tmtc_pool')
 import configparser
 import confignator
 import gi
@@ -447,6 +447,12 @@ class DatapoolManager:
 
         if self.own_gui:
             self.own_gui.disconnect_incoming_via_code(param=[pool_name, None, 'TM'])  # Updates the gui
+
+        #Tell the Poolviewer to stop updating
+        if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
+            pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
+            cfl.Functions(pv, 'stop_recording_info', str(pool_name))
+
         return
 
     def connect_tc(self, pool_name, host, port, drop_rx=True, protocol='PUS', timeout=10, is_server=False, options=''):
@@ -535,6 +541,12 @@ class DatapoolManager:
         self.tc_sock = None
         if self.own_gui:
             self.own_gui.disconnect_incoming_via_code(param=[pool_name, None, 'TC'])  # Updates the gui
+
+        #Tell the Poolviewer to stop updating
+        if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
+            pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
+            cfl.Functions(pv, 'stop_recording_info', str(pool_name))
+
         return
 
     # Function will disconnect both TC/TM connection if they have the same name
@@ -556,6 +568,10 @@ class DatapoolManager:
         if self.own_gui:
             self.own_gui.disconnect_incoming_via_code(param=[pool_name, None, None])  # Updates the gui
 
+        #Tell the Poolviewer to stop updating
+        if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
+            pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
+            cfl.Functions(pv, 'stop_recording_info', str(pool_name))
         return
 
     # Is used from the GUI to tell the Poolmanager which connections have been disconnected
@@ -572,6 +588,11 @@ class DatapoolManager:
                 self.tc_connections[pool_name]['socket'].close()
                 del self.tc_connections[pool_name]
 
+        #Tell the Poolviewer to stop updating
+        if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
+            pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
+            cfl.Functions(pv, 'stop_recording_info', str(pool_name))
+
         return
 
     def get_time(self):
@@ -1871,17 +1892,16 @@ class DatapoolManager:
                         nr = ''
                     editor.Functions('_to_console_via_socket', 'del(pmgr' + str(nr) + ')')
 
-        #if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
-        #    pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
-        #    # Ignore_reply = True not recommended, but it is checked here that it is working
-        #    pv.Functions('stop_all_recording', ignore_reply=True)  # Tell poolviewer that pool is no longer live
-        #    time.sleep(1)
-        for pool in self.loaded_pools.keys():
-            self.disconnect(self.loaded_pools[pool].pool_name)
-        print(self.loaded_pools)
-        print(self.connections)
+        # Tell the Poolviewer that all Pools are now static
         if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
-            self.small_refresh_function()
+            pv = cfl.dbus_connection('poolviewer', cfl.communication['poolviewer'])
+            cfl.Functions(pv, 'stop_recording_info')  # Tell poolviewer that pool is no longer live
+            #time.sleep(1)
+        #for pool in self.loaded_pools.keys():
+        #    self.disconnect(self.loaded_pools[pool].pool_name)
+
+        #if cfl.is_open('poolviewer', cfl.communication['poolviewer']):
+        #    self.small_refresh_function()
 
         try:
             self.update_all_connections_quit()
diff --git a/Tst/prep_test_env.py b/Tst/prep_test_env.py
index 3c3f948ca463b1f73bd224a95a599eed48076bf3..53a483b9c02c7e50d415ea781a265fc8a5000eb7 100755
--- a/Tst/prep_test_env.py
+++ b/Tst/prep_test_env.py
@@ -29,6 +29,7 @@ logger.addHandler(hdlr=console_hdlr)
 file_hdlr = toolbox.create_file_handler(file=log_file)
 logger.addHandler(hdlr=file_hdlr)
 
+pool_name = 'new_tmtc_pool'
 
 def run(pool_name):
     logger.info('1) ------------------- Start the simulators -------------------')
@@ -73,4 +74,4 @@ def run(pool_name):
 
 
 if __name__ == '__main__':
-    run(pool_name='new_tmtc_pool')
+    run(pool_name=pool_name)
diff --git a/Tst/progress_view/progress_view.py b/Tst/progress_view/progress_view.py
index 343d702cb56a9fd4dfc85e7fa23b4a1fd45c18a2..95257a12898875d019b58136b3bed298d400e362 100644
--- a/Tst/progress_view/progress_view.py
+++ b/Tst/progress_view/progress_view.py
@@ -208,31 +208,49 @@ class TestProgressView(Gtk.ApplicationWindow):
         renderer_number.set_property('scale', 2)
         renderer_number.set_property('single-paragraph-mode', True)
         column_number = Gtk.TreeViewColumn('Step', renderer_number, text=8)
+        column_number.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_number.set_resizable(True)
+        column_number.set_min_width(50)
         self.view.append_column(column_number)
 
         # column 2
         renderer_exec_date = Gtk.CellRendererText()
         column_exec_date = Gtk.TreeViewColumn('Execution date', renderer_exec_date, text=1, background=7)
+        column_exec_date.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_exec_date.set_resizable(True)
+        column_exec_date.set_min_width(50)
         self.view.append_column(column_exec_date)
 
         # column 3
         renderer_type = Gtk.CellRendererText()
         column_type = Gtk.TreeViewColumn('Type', renderer_type, text=2, background=7)
+        column_type.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_type.set_resizable(True)
+        column_type.set_min_width(50)
         self.view.append_column(column_type)
 
         # column 4
         renderer_cmd_version = Gtk.CellRendererText()
         column_cmd_version = Gtk.TreeViewColumn('Version', renderer_cmd_version, text=3, background=7)
+        column_cmd_version.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_cmd_version.set_resizable(True)
+        column_cmd_version.set_min_width(50)
         self.view.append_column(column_cmd_version)
 
         # column 5
         renderer_cmd_status = Gtk.CellRendererText()
         column_cmd_status = Gtk.TreeViewColumn('Status', renderer_cmd_status, text=4, background=7)
+        column_cmd_status.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_cmd_status.set_resizable(True)
+        column_cmd_status.set_min_width(50)
         self.view.append_column(column_cmd_status)
 
         # column 6
         renderer_tcs = Gtk.CellRendererText()
         column_tcs = Gtk.TreeViewColumn('TC\'s sent', renderer_tcs, text=5, background=7)
+        column_tcs.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_tcs.set_resizable(True)
+        column_tcs.set_min_width(50)
         self.view.append_column(column_tcs)
 
         # column 7
@@ -249,6 +267,9 @@ class TestProgressView(Gtk.ApplicationWindow):
         renderer_result = Gtk.CellRendererText()
         renderer_result.set_property('xalign', 0.5)
         column_result = Gtk.TreeViewColumn('Result', renderer_result, text=6, background=9)
+        column_result.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        column_result.set_resizable(True)
+        column_result.set_min_width(50)
         # column_result.set_cell_data_func(cell_renderer=renderer_result, func=set_bkgrd_clr, func_data=None)
         self.view.append_column(column_result)
 
@@ -581,6 +602,31 @@ class TestProgressView(Gtk.ApplicationWindow):
         row[7] = entry_background
         return row
 
+    def add_detailed_row(self, inner_row_iter, tree_store):
+        detailed_info=[]
+        for count, item in enumerate(tree_store[inner_row_iter]):
+            if count in [0,7,9]:  # Stepnumber, colour, colour
+                detailed_info.append(item)
+            elif count == 1:
+                detailed_info.append('Description:')
+            elif count == 2:
+                detailed_info.append('Code')
+            elif count == 4:
+                if tree_store[inner_row_iter][2] == 'command':
+                    detailed_info.append('Command Code:')
+                elif tree_store[inner_row_iter][2] == 'verification':
+                    detailed_info.append('Verification Code:')
+                else:
+                    detailed_info.append('Error Code:')
+            elif count == 5:
+                detailed_info.append('Code')
+            elif count in [3,6,8]:
+                detailed_info.append('')
+
+        new_row_iter = tree_store.append(inner_row_iter, detailed_info)
+        new_row = tree_store[new_row_iter]
+
+
     def load_json(self, filepath):
         if not os.path.isfile(filepath):
             message = 'load_file: no file found for the path {}'.format(filepath)
@@ -634,7 +680,8 @@ class TestProgressView(Gtk.ApplicationWindow):
         for step in test_model.sequences[0].steps:
             step_number = step.step_number_test_format
             if step_number not in tree_store_steps:
-                step_desc = 'Step ' + str(step_number)
+                # Sequnece number is no longer shown as it is not necessary as long as only one sequnece is supported
+                step_desc = 'Step ' + str(step_number[:-2])
 
                 new_drawer_row = self.build_row_list(step_number=str(step_number),
                                                      step_desc=step_desc)
@@ -718,6 +765,7 @@ class TestProgressView(Gtk.ApplicationWindow):
                                                        exec_date=item['exec_date'])
                     new_row_iter = tree_store.append(row.iter, new_row_list)
                     new_row = tree_store[new_row_iter]
+
                     # add the information if the step was executed or had an exception
                     if 'exception' in item:
                         self.build_row_list(row=new_row,
@@ -736,6 +784,9 @@ class TestProgressView(Gtk.ApplicationWindow):
                         tcs_str += telecommand.tc_kind()
                     self.build_row_list(row=new_row,
                                         tcs=tcs_str)
+
+                    self.add_detailed_row(new_row_iter, tree_store)
+
         self.restore_expanded_states(tree_store)
 
     def load_vrc_into_tree_store(self, tree_store, vrc_steps):