diff --git a/include/class.nav.php b/include/class.nav.php
index 96e2aa19232372c4a1ab95251b85deaa205b0cb7..47534817eb4c26200de9c3afd1cde01400322308 100644
--- a/include/class.nav.php
+++ b/include/class.nav.php
@@ -43,7 +43,7 @@ class StaffNav {
         return (!$this->isAdminPanel());
     }
 
-    function setTabActive($tab){
+    function setTabActive($tab, $menu=''){
 
         if($this->tabs[$tab]){
             $this->tabs[$tab]['active']=true;
@@ -51,6 +51,7 @@ class StaffNav {
                  $this->tabs[$this->activetab]['active']=false;
 
             $this->activetab=$tab;
+            if($menu) $this->setActiveSubMenu($menu, $tab);
 
             return true;
         }
@@ -58,16 +59,25 @@ class StaffNav {
         return false;
     }
 
-    function setActiveTab($tab){
-        return $this->setTabActive($tab);
+    function setActiveTab($tab, $menu=''){
+        return $this->setTabActive($tab, $menu);
     }
 
     function getActiveTab(){
         return $this->activetab;
     }
 
-    function setActiveSubMenu($mid) {
-        $this->activeMenu = $mid;
+    function setActiveSubMenu($mid, $tab='') {
+        if(is_numeric($mid))
+            $this->activeMenu = $mid;
+        elseif($mid && $tab && ($subNav=$this->getSubNav($tab))) {
+            foreach($subNav as $k => $menu) {
+                if(strcasecmp($mid, $menu['href'])) continue;
+
+                $this->activeMenu = $k+1;
+                break;
+            }
+        }
     }
 
     function getActiveMenu() {
@@ -183,12 +193,12 @@ class AdminNav extends StaffNav{
                     $subnav[]=array('desc'=>'System Logs','href'=>'logs.php','iconclass'=>'logs');
                     break;
                 case 'settings':
-                    $subnav[]=array('desc'=>'System Preferences','href'=>'settings.php','iconclass'=>'preferences');
-                    $subnav[]=array('desc'=>'Tickets','href'=>'settings.php','iconclass'=>'preferences');
-                    $subnav[]=array('desc'=>'Emails','href'=>'settings.php','iconclass'=>'preferences');
-                    $subnav[]=array('desc'=>'Knowledgebase','href'=>'settings.php','iconclass'=>'preferences');
-                    $subnav[]=array('desc'=>'Autoresponder','href'=>'autoresponder.php','iconclass'=>'preferences');
-                    $subnav[]=array('desc'=>'Alerts Notices','href'=>'alerts.php','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'System Preferences','href'=>'settings.php?t=system','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'Tickets','href'=>'settings.php?t=tickets','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'Emails','href'=>'settings.php?t=emails','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'Knowledgebase','href'=>'settings.php?t=kb','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'Autoresponder','href'=>'settings.php?t=autoresp','iconclass'=>'preferences');
+                    $subnav[]=array('desc'=>'Alerts & Notices','href'=>'settings.php?t=alerts','iconclass'=>'preferences');
                     break;
                 case 'manage':
                     $subnav[]=array('desc'=>'Help Topics','href'=>'helptopics.php','iconclass'=>'helpTopics');
diff --git a/scp/settings.php b/scp/settings.php
index 9058fe42ca52c4f9b428bbc52f2ed2cb61f80a8a..0a3f97a912d8fdf6d92dc42ddf035f36bc61b12f 100644
--- a/scp/settings.php
+++ b/scp/settings.php
@@ -15,49 +15,28 @@
 **********************************************************************/
 require('admin.inc.php');
 $errors=array();
-$SettingOptions=array('general'=>'General Settings',
-               'dates'=>'Date and Time Options',
-               'tickets'=>'Ticket Settings and Options',
-               'emails'=>'Email Settings',
-               'attachments'=>'Attachments Settings',
-               'kb'=>'Knowledgebase Settings',
-               'autoresponders'=>'Autoresponder Settings',
-               'alerts'=>'Alerts and Notices Settings');
-
+$settingOptions=array(
+                'system' => 'System Settings',
+                'tickets' => 'Ticket Settings and Options',
+                'emails' => 'Email Settings',
+                'kb' => 'Knowledgebase Settings',
+                'autoresp' => 'Autoresponder Settings',
+                'alerts' => 'Alerts and Notices Settings');
 //Handle a POST.
-if($_POST && !$errors){
-    $errors=array();
-    if($cfg && $cfg->updateSettings($_POST,$errors)){
-        $msg=Format::htmlchars($SettingOptions[$_POST['t']]).' Updated Successfully';
+if($_POST && !$errors) {
+    if($cfg && $cfg->updateSettings($_POST,$errors)) {
+        $msg=Format::htmlchars($settingOptions[$_POST['t']]).' Updated Successfully';
         $cfg->reload();
-    }elseif(!$errors['err']){
-        $errors['err']='Unable to update system settings - correct any errors below and try again';
+    } elseif(!$errors['err']) {
+        $errors['err']='Unable to update settings - correct errors below and try again';
     }
 }
 
-$target=($_REQUEST['t'] && $SettingOptions[$_REQUEST['t']])?$_REQUEST['t']:'general';
-
-$nav->setTabActive('settings');
-require(STAFFINC_DIR.'header.inc.php');
-?>
-<h2>System Preferences and Settings - <span>osTicket (v<?php echo $cfg->getVersion(); ?>)</span></h2>
-<div style="padding-top:10px;padding-bottom:5px;">
-    <form method="get" action="settings.php">
-    Setting Option: 
-    <select id="setting_options" name="t" style="width:300px;">
-        <option value="">&mdash; Select Setting Group &mdash;</option>
-        <?php
-        foreach($SettingOptions as $k=>$v) {
-            $sel=($target==$k)?'selected="selected"':'';
-            echo sprintf('<option value="%s" %s>%s</option>',$k,$sel,$v);
-        }
-        ?>
-    </select>
-    <input type="submit" value="Go">
-    </form>
-</div>
-<?php
+$target=($_REQUEST['t'] && $settingOptions[$_REQUEST['t']])?$_REQUEST['t']:'system';
 $config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfigInfo());
+
+$nav->setTabActive('settings', ('settings.php?t='.$target));
+require_once(STAFFINC_DIR.'header.inc.php');
 include_once(STAFFINC_DIR."settings-$target.inc.php");
 include_once(STAFFINC_DIR.'footer.inc.php');
 ?>