diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index efef28440d0fd75ef8ceb371b89561845d1d3a57..b12cfccc02dca7e1ac6b2d63235a71505c7d05a2 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -6015,7 +6015,7 @@ class DbTools:
             os.path.basename(filename),
             False)
 
-        new_session = scoped_session_storage
+        new_session = scoped_session_storage()
         filename_in_pool = new_session.query(DbTelemetryPool).filter(DbTelemetryPool.pool_name == active_pool_info.filename)
 
         pool_exists_in_db_already = filename_in_pool.filter(DbTelemetryPool.modification_time == active_pool_info.modification_time).count() > 0
@@ -6037,18 +6037,19 @@ class DbTools:
             loadinfo = LoadInfo(parent=parent)
             # loadinfo.spinner.start()
             # loadinfo.show_all()
+            new_session.close()
+
             _loader_thread = threading.Thread(target=DbTools.import_dump_in_db,
                                               args=[active_pool_info, loadinfo],
                                               kwargs={'brute': brute, 'protocol': protocol, 'pecmode': pecmode})
             _loader_thread.daemon = True
             _loader_thread.start()
 
-            logger.info('Loading Pool:' + str(filename))
+            logger.info('Loading Pool: ' + str(filename))
 
         else:
             _loader_thread = None
-
-        new_session.close()
+            new_session.close()
 
         # logger.info('Loaded Pool:' + str(filename))
 
@@ -6158,7 +6159,7 @@ class DbTools:
         # pv.Functions('_set_list_and_display_Glib_idle_add', self.active_pool_info, int(self.my_bus_name[-1]), ignore_reply=True)
         # GLib.idle_add(self._set_pool_list_and_display)
         new_session.close()
-        logger.info('Loaded Pool:' + str(pool_info.filename))
+        logger.info('Loaded Pool: ' + str(pool_info.filename))
 
     @staticmethod
     def db_bulk_insert(filename, processor, bulk_insert_size=1000, brute=False, checkcrc=True, protocol='PUS', pecmode='warn'):
@@ -6167,7 +6168,7 @@ class DbTools:
 
             pcktcount = 0
 
-            new_session = scoped_session_storage
+            new_session = scoped_session_storage()
             new_session.execute('set unique_checks=0,foreign_key_checks=0')
 
             if protocol == 'PUS':
diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py
index 3d9d177c0eb0f87d777540d69c3726ca654a5c31..065750264e1f82b13f77b88ec263d8a1622df03f 100644
--- a/Ccs/poolview_sql.py
+++ b/Ccs/poolview_sql.py
@@ -650,6 +650,7 @@ class TMPoolView(Gtk.Window):
 
         if self.active_pool_info is None:
             return 0
+
         new_session = self.session_factory_storage
         rows = new_session.query(
             Telemetry[self.decoding_type]
@@ -660,6 +661,7 @@ class TMPoolView(Gtk.Window):
             DbTelemetryPool.pool_name == self.active_pool_info.filename
         )
         if rows.first() is None:
+            self.logger.warning('Could not find rows for pool {}'.format(self.active_pool_info.filename))
             cnt = 0
         else:
             cnt = rows.order_by(Telemetry[self.decoding_type].idx.desc()).first().idx
@@ -1544,19 +1546,23 @@ class TMPoolView(Gtk.Window):
 
         active_info = selector.get_model()[selector.get_active_iter()]
 
-        if not new_pool:
+        if new_pool is None:
             pool_name = active_info[3]
         else:
             pool_name = new_pool
 
-        new_session = self.session_factory_storage
+        new_session = self.session_factory_storage()
         try:
             live = False
             dbpool = new_session.query(DbTelemetryPool).filter(DbTelemetryPool.pool_name == pool_name).first()
+
             if active_info[0] == active_info[3]:  # check if pool is loaded from a file
                 live = True
 
-            self.Active_Pool_Info_append([pool_name, dbpool.modification_time, dbpool.pool_name, live])
+            if dbpool is not None:
+                self.Active_Pool_Info_append(pool_info=[pool_name, dbpool.modification_time, os.path.basename(pool_name), live])
+            else:
+                self.Active_Pool_Info_append(pool_info=None)
 
         except Exception as err:
             self.logger.warning(err)
@@ -2401,8 +2407,12 @@ class TMPoolView(Gtk.Window):
                     pool[1] = None
                     break
 
-            if self.pool_selector.get_active_iter() == pool.iter:
-                self.select_pool(self.pool_selector, pool_info)
+            # check via filename if loaded pool is currently viewed
+            if model[self.pool_selector.get_active_iter()][3] == pool_info.filename:
+                # self.select_pool(self.pool_selector, pool_info.filename)
+                self.adj.set_upper(self.count_current_pool_rows(pool_info=pool_info))
+                self.adj.set_value(0)
+                self._on_scrollbar_changed(adj=self.adj)
 
         except Exception as err:
             self.logger.error(err)