diff --git a/qt/applications/workbench/workbench/app/mainwindow.py b/qt/applications/workbench/workbench/app/mainwindow.py
index 29faf56984105e35eafa9b0893842c27d3706086..1a8e7016e82a9fdc79dd0c192ca31e65948a5f75 100644
--- a/qt/applications/workbench/workbench/app/mainwindow.py
+++ b/qt/applications/workbench/workbench/app/mainwindow.py
@@ -476,6 +476,13 @@ class MainWindow(QMainWindow):
         editor = self.editor
         algorithm_selector = self.algorithm_selector
         plot_selector = self.plot_selector
+
+        # If more than two rows are needed in a column,
+        # arrange_layout function needs to be revisited for
+        # the hegiht_fractions to be applied correctly.
+        # In the first column, there are three widgets in two rows
+        # as the algorithm_selector and plot_selector are tabified.
+        # Currently, the arrange_layout function does not use width-fraction.
         default_layout = {
             'widgets': [
                 # column 0
@@ -485,11 +492,11 @@ class MainWindow(QMainWindow):
                 # column 2
                 [[memorywidget], [logmessages]]
             ],
-            'width-fraction': [
-                0.25,  # column 0 width
-                0.50,  # column 1 width
-                0.25
-            ],  # column 2 width
+            # 'width-fraction': [
+            #     0.25,  # column 0 width
+            #     0.50,  # column 1 width
+            #     0.25
+            # ],  # column 2 width
             'height-fraction': [
                 [0.5, 0.5],  # column 0 row heights
                 [1.0],  # column 1 row heights
@@ -505,6 +512,7 @@ class MainWindow(QMainWindow):
         """Arrange the layout of the child widgets according to the supplied layout"""
         self.prep_window_for_reset()
         widgets_layout = layout['widgets']
+        widgets_height_fractions = layout['height-fraction']
         with widget_updates_disabled(self):
             # flatten list
             widgets = [item for column in widgets_layout for row in column for item in row]
@@ -516,11 +524,22 @@ class MainWindow(QMainWindow):
                 first, second = widgets[i], widgets[i + 1]
                 self.splitDockWidget(first.dockwidget, second.dockwidget, Qt.Horizontal)
             # now arrange the rows
+
+            idx_column = -1
             for column in widgets_layout:
+                idx_column += 1
+                height_fractions = widgets_height_fractions[idx_column]
                 for i in range(len(column) - 1):
                     first_row, second_row = column[i], column[i + 1]
+                    height_fraction_first_row, height_fraction_second_row = height_fractions[i], \
+                        height_fractions[i+1]
                     self.splitDockWidget(first_row[0].dockwidget, second_row[0].dockwidget,
                                          Qt.Vertical)
+                    height = first_row[0].dockwidget.rect().height()
+                    self.resizeDocks((first_row[0].dockwidget, second_row[0].dockwidget), \
+                        (height_fraction_first_row*height, height_fraction_second_row*height), \
+                        Qt.Vertical)
+
             # and finally tabify those in the same position
             for column in widgets_layout:
                 for row in column:
diff --git a/qt/applications/workbench/workbench/plugins/memoryinfo.py b/qt/applications/workbench/workbench/plugins/memoryinfo.py
index 719c0d635f4daacb126e8a3b116ebfc7a65db4e1..e1a331547b3169df1f55003c7d7e40d2d32843e0 100644
--- a/qt/applications/workbench/workbench/plugins/memoryinfo.py
+++ b/qt/applications/workbench/workbench/plugins/memoryinfo.py
@@ -11,10 +11,9 @@ from psutil import virtual_memory
 
 def getMemoryUsed():
     mem_used  = virtual_memory().used
-    mem_avail = virtual_memory().available
-    mem_used_percent = min(int(round(mem_used * 100 / mem_avail)),100)
+    mem_total = virtual_memory().total
+    mem_used_percent = min(int(round(mem_used * 100 / mem_total)),100)
     conversion_factor_to_GB = 1.0 / 1024 / 1024 / 1024
     mem_used_GB = mem_used * conversion_factor_to_GB
-    mem_avail_GB = mem_avail * conversion_factor_to_GB
-    return mem_used_percent, mem_used_GB, mem_avail_GB
-
+    mem_total_GB = mem_total * conversion_factor_to_GB
+    return mem_used_percent, mem_used_GB, mem_total_GB
diff --git a/qt/applications/workbench/workbench/plugins/test/test_memoryinfo.py b/qt/applications/workbench/workbench/plugins/test/test_memoryinfo.py
index 8ad2446e5b1e0352a6735b57a8aaf897805ccc53..2a2abfab949a6ef362bc260ca9c96f4cfa1bb6b1 100644
--- a/qt/applications/workbench/workbench/plugins/test/test_memoryinfo.py
+++ b/qt/applications/workbench/workbench/plugins/test/test_memoryinfo.py
@@ -13,7 +13,7 @@ from workbench.plugins.memoryinfo import getMemoryUsed
 class MemoryInfoTest(unittest.TestCase):
 
     def test_MemoryInfo(self):
-        mem_used_percent, mem_used, mem_avail = getMemoryUsed()
+        mem_used_percent, mem_used, mem_total = getMemoryUsed()
         self.assertTrue(isinstance(mem_used_percent, int))
         self.assertTrue(0 <= mem_used_percent <= 100)