diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index f8ac24560dd855db1780ba990d10957e7b32b6ce..9bcbac405afc78c7efad6a7deb26d1c3f7525e65 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -5911,14 +5911,12 @@ class DbTools:
             False)
 
         new_session = scoped_session_storage
-        pool_exists_in_db_already = new_session.query(
-            DbTelemetryPool
-        ).filter(
-            DbTelemetryPool.pool_name == active_pool_info.filename,
-            DbTelemetryPool.modification_time == active_pool_info.modification_time
-        ).count() > 0
+        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
+
         if (not pool_exists_in_db_already) or force_db_import:
-            if force_db_import:
+            if force_db_import or filename_in_pool.count():
                 del_time = time.strftime('%s')
                 new_session.execute(
                     'UPDATE tm_pool SET pool_name="---TO-BE-DELETED{}" WHERE tm_pool.pool_name="{}"'.format(
@@ -5940,13 +5938,16 @@ class DbTools:
             _loader_thread.daemon = True
             _loader_thread.start()
 
-            logger.info('Loaded Pool:' + str(filename))
+            logger.info('Loading Pool:' + str(filename))
+
+        else:
+            _loader_thread = None
 
         new_session.close()
 
-        logger.info('Loaded Pool:' + str(filename))
+        # logger.info('Loaded Pool:' + str(filename))
 
-        return active_pool_info
+        return active_pool_info, _loader_thread
 
     @staticmethod
     def import_dump_in_db(pool_info, loadinfo, brute=False, protocol='PUS', pecmode='warn'):
@@ -6052,6 +6053,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))
 
     @staticmethod
     def db_bulk_insert(filename, processor, bulk_insert_size=1000, brute=False, checkcrc=True, protocol='PUS', pecmode='warn'):
@@ -6134,20 +6136,12 @@ class DbTools:
 
 class LoadInfo(Gtk.Window):
     def __init__(self, parent=None, title="DB Loader"):
-        Gtk.Window.__init__(self)
-
-        if title is None:
-            self.set_title('Loading data to pool...')
-        else:
-            self.set_title(title)
+        Gtk.Window.__init__(self, transient_for=parent, destroy_with_parent=True)
 
-        self.pmgr = parent
+        self.set_title(title)
 
         grid = Gtk.VBox()
-        # pixbuf = Gtk.gdk.pixbuf_new_from_file('pixmap/Icon_Space_weiß_en.png')
-        # pixbuf = pixbuf.scale_simple(100, 100, Gtk.gdk.INTERP_BILINEAR)
-        # logo = Gtk.image_new_from_pixbuf(pixbuf)
-        logo = Gtk.Image.new_from_file('pixmap/ccs_logo_2.svg')
+        logo = Gtk.Image.new_from_file(os.path.join(cfg.get('paths', 'ccs'), 'pixmap/ccs_logo_2.svg'))
 
         self.spinner = Gtk.Spinner()
         self.spinner.set_size_request(48, 48)
@@ -6167,9 +6161,6 @@ class LoadInfo(Gtk.Window):
         self.show_all()
 
     def destroy_window(self, widget, *args):
-        # if is_open('poolviewer', communication['poolviewer']):
-        #     pv = dbus_connection('poolviewer', communication['poolviewer'])
-        #     pv.Functions('small_refresh_function')
         try:
             self.destroy()
         except Exception as err:
diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py
index 5f8303d8e73a2743054ce47c6c9638291d7d777b..8bc18e569819e082ab7af2d77dc07f1f47bf3425 100644
--- a/Ccs/poolview_sql.py
+++ b/Ccs/poolview_sql.py
@@ -1960,7 +1960,7 @@ class TMPoolView(Gtk.Window):
         for pool in model:
             if pool[3] == filename:
                 self.logger.info('Pool {} already loaded'.format(filename))
-                return True
+                return pool
         return False
 
     def update_columns(self):
@@ -2795,14 +2795,49 @@ class TMPoolView(Gtk.Window):
             dialog.destroy()
 
         if no_duplicates and (not force_db_import):
-            if self._check_pool_is_loaded(filename):
+            loadeditem = self._check_pool_is_loaded(filename)
+            if loadeditem:
+                self.pool_selector.set_active_iter(loadeditem.iter)
                 return
 
-        new_pool = cfl.DbTools.sql_insert_binary_dump(filename, brute=brute, force_db_import=force_db_import,
-                                                      protocol=protocol, pecmode='warn', parent=self)
+        new_pool, loader_thread = cfl.DbTools.sql_insert_binary_dump(filename, brute=brute, force_db_import=force_db_import,
+                                                                     protocol=protocol, pecmode='warn', parent=self)
 
         self._set_pool_list_and_display(new_pool)
 
+        if loader_thread is not None:
+            checkloader_thread = threading.Thread(target=self._db_loading_checker, args=[new_pool, loader_thread])
+            checkloader_thread.daemon = True
+            checkloader_thread.start()
+
+    def _db_loading_checker(self, pool_info, thread):
+
+        try:
+            model = self.pool_selector.get_model()
+            for pool in model:
+                if pool[3] == pool_info.filename:
+                    pool[1] = '[LOAD]'
+
+            while thread.is_alive():
+                time.sleep(1)
+
+            model = self.pool_selector.get_model()
+
+            for pool in model:
+                if pool[3] == pool_info.filename:
+                    pool[1] = None
+                    break
+
+            if self.pool_selector.get_active_iter() == pool.iter:
+                self.select_pool(self.pool_selector, pool_info)
+
+        except Exception as err:
+            self.logger.error(err)
+            model = self.pool_selector.get_model()
+            for pool in model:
+                if pool[3] == pool_info.filename:
+                    pool[1] = 'ERR'
+
     def pool_loader_dialog_buttons(self):
         '''
         Small Function to set up the buttons for the Pool Loading Window
@@ -3081,10 +3116,10 @@ class TMPoolView(Gtk.Window):
         if poolmgr:
             poolmgr.Functions('disconnect', pool_name)
 
-        iter = self.pool_selector.get_active_iter()
+        itr = 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]
+            mod[itr][1] = self.live_signal[self.active_pool_info.live]
             self.stop_butt.set_sensitive(False)
 
         return