diff --git a/Ccs/ccs_main_config.cfg b/Ccs/ccs_main_config.cfg
index dcb2301cf6ab9e47f64d01bf3b67e27586678e64..fb716b9f94399c760cb2dd5ce8edcea2f594ca00 100644
--- a/Ccs/ccs_main_config.cfg
+++ b/Ccs/ccs_main_config.cfg
@@ -35,6 +35,7 @@ ifsw_path = ../../../IFSW/
 ce_exec =
 # pec_mode = ignore, warn, discard
 pec_mode = warn
+viewer_cell_pad = 2
 
 [ccs-pus_connection]
 target_ip = 10.0.0.1
diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py
index 48a82740e756f0c3af61c39bf692d00e4488acdc..c813297ae234840a531841dd5a0c2506d5532993 100644
--- a/Ccs/poolview_sql.py
+++ b/Ccs/poolview_sql.py
@@ -112,6 +112,8 @@ class TMPoolView(Gtk.Window):
     shown_limit = 0
     only_scroll = False
 
+    CELLPAD_MAGIC = float(cfg['ccs-misc']['viewer_cell_pad'])
+
     def __init__(self, cfg=cfg, pool_name=None, cfilters='default', standalone=False):
         Gtk.Window.__init__(self, title="Pool View", default_height=800, default_width=1100)
 
@@ -578,7 +580,12 @@ class TMPoolView(Gtk.Window):
 
         if self.active_pool_info.pool_name not in (None, ''):
             self.adj.set_upper(self.count_current_pool_rows())
-        self.adj.set_page_size(50)
+        height = self.treeview.get_allocated_height()
+        column = self.treeview.get_column(0)
+        cell_pad = column.get_cells()[0].get_padding()[1]
+        cell = column.cell_get_size()[-1] + cell_pad * self.CELLPAD_MAGIC
+        nlines = height // cell
+        self.adj.set_page_size(nlines)
         scrollbar.connect('value_changed', self._on_scrollbar_changed, self.adj, False)
         scrollbar.connect('button-press-event', self.scroll_bar)
         # scrollbar.connect('value_changed', self.reselect_rows)
@@ -629,8 +636,11 @@ class TMPoolView(Gtk.Window):
     def set_number_of_treeview_rows(self, widget=None, allocation=None):
         # alloc = widget.get_allocation()
         height = self.treeview.get_allocated_height()
-        cell = 25
-        # cell = self.treeview.get_columns()[0].cell_get_size()[-1] + 2
+        # height = self.treeview.get_visible_rect().height
+        # cell = 25
+        column = self.treeview.get_column(0)
+        cell_pad = column.get_cells()[0].get_padding()[1]
+        cell = column.cell_get_size()[-1] + cell_pad * self.CELLPAD_MAGIC
         nlines = height // cell
         self.adj.set_page_size(nlines - 1)
         # self._scroll_treeview()
@@ -878,7 +888,7 @@ class TMPoolView(Gtk.Window):
                 return x[0] < x[2]
             elif x[1] == '>':
                 return x[0] > x[2]
-            
+
         # for fid in self.filter_rules:
         #     ff = self.filter_rules[fid]
         #     if ff[1] == '==':
@@ -2106,7 +2116,6 @@ class TMPoolView(Gtk.Window):
                 type = new_session.query(DbTelemetryPool).filter(DbTelemetryPool.pool_name == pool_name)
                 self.Active_Pool_Info_append([pool_name, type.modification_time, pool_name, False])
 
-
             new_session.close()
 
         self.update_columns()
@@ -2121,7 +2130,6 @@ class TMPoolView(Gtk.Window):
         self.adj.set_value(0)
         self._on_scrollbar_changed(adj=self.adj)
 
-
         # queue = self.queues[pool_name]
         #
         # if queue is not None:
@@ -2256,7 +2264,6 @@ class TMPoolView(Gtk.Window):
             cfl.Functions(poolmgr, 'loaded_pools_func', self.active_pool_info.pool_name, self.active_pool_info)
         return
 
-
     def create_tm_data_viewer(self):
         box = Gtk.VBox()