diff --git a/html/pages/device.inc.php b/html/pages/device.inc.php
index 1455abd766..406c47fbfc 100644
--- a/html/pages/device.inc.php
+++ b/html/pages/device.inc.php
@@ -153,20 +153,31 @@ if (device_permitted($vars['device']) || $check_device == $vars['device'])
   ');
     }
 
-    ### $routing_tabs is used in device/routing/ to build the tabs menu. we built it here to save some queries
+    ### $loadbalancer_tabs is used in device/loadbalancer/ to build the submenu. we do it here to save queries
 
     if($device['os'] == "netscaler") /// Netscaler
     {
-      $device_routing_count['netscaler_vsvr'] = dbFetchCell("SELECT COUNT(*) FROM `netscaler_vservers` WHERE `device_id` = ?", array($device['device_id']));
-      if ($device_routing_count['netscaler_vsvr']) { $routing_tabs[] = 'netscaler_vsvr'; }
+      $device_loadbalancer_count['netscaler_vsvr'] = dbFetchCell("SELECT COUNT(*) FROM `netscaler_vservers` WHERE `device_id` = ?", array($device['device_id']));
+      if ($device_loadbalancer_count['netscaler_vsvr']) { $loadbalancer_tabs[] = 'netscaler_vsvr'; }
     }
 
     if($device['os'] == "acsw")  /// Cisco ACE
     {
-      $device_routing_count['loadbalancer_vservers'] = dbFetchCell("SELECT COUNT(*) FROM `loadbalancer_vservers` WHERE `device_id` = ?", array($device['device_id']));
-      if ($device_routing_count['loadbalancer_vservers']) { $routing_tabs[] = 'loadbalancer_vservers'; }
+      $device_loadbalancer_count['loadbalancer_vservers'] = dbFetchCell("SELECT COUNT(*) FROM `loadbalancer_vservers` WHERE `device_id` = ?", array($device['device_id']));
+      if ($device_loadbalancer_count['loadbalancer_vservers']) { $loadbalancer_tabs[] = 'loadbalancer_vservers'; }
     }
 
+    if (is_array($loadbalancer_tabs))
+    {
+      echo('
+    
+       Load Balancer
+    
+  ');
+    }
+
+    ### $routing_tabs is used in device/routing/ to build the tabs menu. we built it here to save some queries
+
     $device_routing_count['loadbalancer_rservers'] = dbFetchCell("SELECT COUNT(*) FROM `loadbalancer_rservers` WHERE `device_id` = ?", array($device['device_id']));
     if ($device_routing_count['loadbalancer_rservers']) { $routing_tabs[] = 'loadbalancer_rservers'; }
 
diff --git a/html/pages/device/loadbalancer.inc.php b/html/pages/device/loadbalancer.inc.php
new file mode 100644
index 0000000000..49271e188c
--- /dev/null
+++ b/html/pages/device/loadbalancer.inc.php
@@ -0,0 +1,67 @@
+ 'device',
+                    'device'  => $device['device_id'],
+                    'tab'     => 'loadbalancer');
+
+## Cisco ACE
+$type_text['loadbalancer_rservers'] = "Rservers";
+$type_text['loadbalancer_vservers'] = "Serverfarms";
+
+## Citrix Netscaler
+$type_text['netscaler_vsvr'] = "VServers";
+
+print_optionbar_start();
+
+$pagetitle[] = "Load Balancer";
+
+echo("Load Balancer » ");
+
+unset($sep);
+foreach ($loadbalancer_tabs as $type)
+{
+
+  if (!$vars['proto']) { $vars['proto'] = $type; }
+
+  echo($sep);
+
+  if ($vars['proto'] == $type)
+  {
+    echo('"); }
+  $sep = " | ";
+}
+
+print_optionbar_end();
+
+if (is_file("pages/device/loadbalancer/".mres($vars['proto']).".inc.php"))
+{
+   include("pages/device/loadbalancer/".mres($vars['proto']).".inc.php");
+} else {
+  foreach ($loadbalancer_tabs as $type)
+  {
+    if ($type != "overview")
+    {
+      if (is_file("pages/device/loadbalancer/overview/".mres($type).".inc.php")) {
+
+        $g_i++;
+        if (!is_integer($g_i/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; }
+
+        echo('
 Load Balancer
+    
+  ');
+    }
+
+    ### $routing_tabs is used in device/routing/ to build the tabs menu. we built it here to save some queries
+
     $device_routing_count['loadbalancer_rservers'] = dbFetchCell("SELECT COUNT(*) FROM `loadbalancer_rservers` WHERE `device_id` = ?", array($device['device_id']));
     if ($device_routing_count['loadbalancer_rservers']) { $routing_tabs[] = 'loadbalancer_rservers'; }
 
diff --git a/html/pages/device/loadbalancer.inc.php b/html/pages/device/loadbalancer.inc.php
new file mode 100644
index 0000000000..49271e188c
--- /dev/null
+++ b/html/pages/device/loadbalancer.inc.php
@@ -0,0 +1,67 @@
+ 'device',
+                    'device'  => $device['device_id'],
+                    'tab'     => 'loadbalancer');
+
+## Cisco ACE
+$type_text['loadbalancer_rservers'] = "Rservers";
+$type_text['loadbalancer_vservers'] = "Serverfarms";
+
+## Citrix Netscaler
+$type_text['netscaler_vsvr'] = "VServers";
+
+print_optionbar_start();
+
+$pagetitle[] = "Load Balancer";
+
+echo("Load Balancer » ");
+
+unset($sep);
+foreach ($loadbalancer_tabs as $type)
+{
+
+  if (!$vars['proto']) { $vars['proto'] = $type; }
+
+  echo($sep);
+
+  if ($vars['proto'] == $type)
+  {
+    echo('"); }
+  $sep = " | ";
+}
+
+print_optionbar_end();
+
+if (is_file("pages/device/loadbalancer/".mres($vars['proto']).".inc.php"))
+{
+   include("pages/device/loadbalancer/".mres($vars['proto']).".inc.php");
+} else {
+  foreach ($loadbalancer_tabs as $type)
+  {
+    if ($type != "overview")
+    {
+      if (is_file("pages/device/loadbalancer/overview/".mres($type).".inc.php")) {
+
+        $g_i++;
+        if (!is_integer($g_i/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; }
+
+        echo('');
+        echo('
'.$type_text[$type].'');
+        include("pages/device/loadbalancer/overview/".mres($type).".inc.php");
+        echo('
');
+        echo('