diff --git a/include/class.config.php b/include/class.config.php
index 09d58c8ec867e03b3d58f7fdd80bbe5cfbe77e49..d0a735e7db0f94cfcb231b053218af27f9a4f5e3 100644
--- a/include/class.config.php
+++ b/include/class.config.php
@@ -914,13 +914,6 @@ class OsticketConfig extends Config {
         return $this->get('auto_claim_tickets');
     }
 
-    // XXX: Drop these!!
-    function showAssignedTickets() {
-        return ($this->get('show_assigned_tickets'));
-    }
-    function showAnsweredTickets() {
-        return ($this->get('show_answered_tickets'));
-    }
     function getDefaultTicketQueueId() {
         return $this->get('default_ticket_queue');
     }
diff --git a/include/class.organization.php b/include/class.organization.php
index b0b811f4f5795b9fed06b9a52eeae80b809e5d6b..f164e663c9981f117e804e0e0b4fe9e6588f2aca 100644
--- a/include/class.organization.php
+++ b/include/class.organization.php
@@ -350,6 +350,7 @@ implements TemplateVariable, Searchable {
     }
 
     static function getSearchableFields() {
+        $base = array();
         $uform = OrganizationForm::objects()->one();
         $base = array();
         foreach ($uform->getFields() as $F) {
diff --git a/include/class.queue.php b/include/class.queue.php
index e63dbf9e779afa2582c42346659e43a826b432de..64ac81cfb2bc7404536bde80bc22f3ff83bdba0d 100644
--- a/include/class.queue.php
+++ b/include/class.queue.php
@@ -880,7 +880,7 @@ class CustomQueue extends VerySimpleModel {
             // Add new columns
             foreach ($new as $info) {
                 $glue = new QueueColumnGlue(array(
-                    'column_id' => $info['column_id'], 
+                    'column_id' => $info['column_id'],
                     'sort' => array_search($info['column_id'], $order),
                     'heading' => $info['heading'],
                     'width' => $info['width'] ?: 100,
diff --git a/include/class.search.php b/include/class.search.php
index f95c5cb1bf297217a8f3f99c2de1c9f18676b693..ffdf9a46ef2409d31b883cfa5006f7f194cd176c 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -680,7 +680,7 @@ class SavedSearch extends CustomQueue {
 class AdhocSearch
 extends SavedSearch {
     function getName() {
-        return $this->describeCriteria();
+        return $this->title ?: $this->describeCriteria();
     }
 }
 
diff --git a/include/class.staff.php b/include/class.staff.php
index 9d160e64797e14b15972d178bed17b5b5dc23887..c2c1b67670ca05575a370763fa134ea43ad14522 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -88,6 +88,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable {
                         'default_from_name' => '',
                         'datetime_format'   => '',
                         'thread_view_order' => '',
+                        'default_ticket_queue_id' => 0,
                         ));
             $this->_config = $_config->getInfo();
         }
@@ -323,6 +324,10 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable {
         return $this->signature;
     }
 
+    function getDefaultTicketQueueId() {
+        return $this->default_ticket_queue_id;
+    }
+
     function getDefaultSignatureType() {
         return $this->default_signature_type;
     }
@@ -525,10 +530,6 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable {
         return ($deptId && in_array($deptId, $this->getDepts()) && !$this->isAccessLimited());
     }
 
-    function showAssignedTickets() {
-        return $this->show_assigned_tickets;
-    }
-
     function getTeams() {
 
         if (!isset($this->_teams)) {
@@ -673,9 +674,6 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable {
         $this->signature = Format::sanitize($vars['signature']);
         $this->timezone = $vars['timezone'];
         $this->locale = $vars['locale'];
-        if (!$cfg->showAssignedTickets())
-            // Allow local unsetting if unset globally
-            $this->show_assigned_tickets = isset($vars['show_assigned_tickets']) ? 1 : 0;
         $this->max_page_size = $vars['max_page_size'];
         $this->auto_refresh_rate = $vars['auto_refresh_rate'];
         $this->default_signature_type = $vars['default_signature_type'];
@@ -698,6 +696,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable {
                     'datetime_format' => $vars['datetime_format'],
                     'default_from_name' => $vars['default_from_name'],
                     'thread_view_order' => $vars['thread_view_order'],
+                    'default_ticket_queue_id' => $vars['default_ticket_queue_id'],
                     )
                 );
         $this->_config = $_config->getInfo();
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 570b1eeafc263f76436363edb959b3b7369894aa..4d9251c66b001cf8e9d2edc314158b026092c83b 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -2920,8 +2920,6 @@ implements RestrictedAccess, Threadable, Searchable {
             ->values('status__state', 'isanswered', 'isoverdue','staff_id', 'team_id');
 
         $stats = array();
-        $hideassigned = ($cfg && !$cfg->showAssignedTickets()) && !$staff->showAssignedTickets();
-        $showanswered = $cfg->showAnsweredTickets();
         $id = $staff->getId();
         foreach ($blocks as $S) {
             if ($showanswered || !$S['isanswered']) {
diff --git a/include/class.user.php b/include/class.user.php
index a24efed69de28ec41cb2b289edf3be086c086264..e5f898d7d0050d573f0f41148377187ddbf6bb78 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -367,6 +367,7 @@ implements TemplateVariable, Searchable {
     }
 
     static function getSearchableFields() {
+        $base = array();
         $uform = UserForm::getUserForm();
         $base = array();
         foreach ($uform->getFields() as $F) {
diff --git a/include/i18n/en_US/queue.yaml b/include/i18n/en_US/queue.yaml
index 901de736209dcf18725836fd72a4ba67eae11b01..0d572c5c7d3ea24779aceaa3b6fc3ae07312ff2b 100644
--- a/include/i18n/en_US/queue.yaml
+++ b/include/i18n/en_US/queue.yaml
@@ -1,14 +1,14 @@
 #
 # Basic queues for the initial ticket system. Queues installed for
 # - Open / All
-# - Open / Answered
-# - Open / Unanswered
 # - Open / Unassigned
-# - Open / Mine
+# - Open / Overdue
+# - Answered / All
+# - My Tickets / All
 # - Closed / All
 #
 # Fields:
-# id:       
+# id:
 # parent_id:
 # flags:
 #   0x01:   FLAG_PUBLIC
@@ -31,30 +31,36 @@
   title: Open
   flags: 0x03
   sort: 1
-  root: T 
+  root: T
   config: '[["status__state","includes",{"open":"Open"}]]'
   columns:
     - column_id: 1
+      bits: 1
       sort: 1
       width: 100
       heading: Ticket
     - column_id: 10
+      bits: 1
       sort: 2
       width: 150
       heading: Last Updated
     - column_id: 3
+      bits: 1
       sort: 3
       width: 300
       heading: Subject
     - column_id: 4
+      bits: 1
       sort: 4
       width: 185
       heading: From
     - column_id: 5
+      bits: 1
       sort: 5
       width: 85
       heading: Priority
     - column_id: 8
+      bits: 1
       sort: 6
       width: 160
       heading: Assigned To
@@ -65,129 +71,277 @@
     - sort_id: 4
 
 - id: 2
+  title: Answered
+  parent_id: 1
+  flags: 0x03
+  root: T
+  sort: 4
+  config: '[["isanswered","set",null]]'
+  columns:
+    - column_id: 1
+      bits: 1
+      sort: 1
+      width: 100
+      heading: Ticket
+    - column_id: 10
+      bits: 1
+      sort: 2
+      width: 150
+      heading: Last Update
+    - column_id: 3
+      bits: 1
+      sort: 3
+      width: 300
+      heading: Subject
+    - column_id: 4
+      bits: 1
+      sort: 4
+      width: 185
+      heading: From
+    - column_id: 5
+      bits: 1
+      sort: 5
+      width: 85
+      heading: Priority
+    - column_id: 8
+      bits: 1
+      sort: 6
+      width: 160
+      heading: Assigned To
+  sorts:
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+
+
+
+- id: 3
+  title: My Tickets
+  parent_id: 0
+  flags: 0x03
+  root: T
+  sort: 3
+  config: '{"criteria":[["assignee","includes",{"M":"Me","T":"One of my teams"}],["status__state","includes",{"open":"Open"}]],"conditions":[]}'
+  columns:
+    - column_id: 1
+      bits: 1
+      sort: 1
+      width: 100
+      heading: Ticket
+    - column_id: 10
+      bits: 1
+      sort: 2
+      width: 150
+      heading: Last Update
+    - column_id: 3
+      bits: 1
+      sort: 3
+      width: 300
+      heading: Subject
+    - column_id: 4
+      bits: 1
+      sort: 4
+      width: 185
+      heading: From
+    - column_id: 5
+      bits: 1
+      sort: 5
+      width: 85
+      heading: Priority
+    - column_id: 11
+      bits: 1
+      sort: 6
+      width: 160
+      heading: Department
+  sorts:
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+
+- id: 4
   title: Closed
   flags: 0x03
-  sort: 2
+  sort: 4
   root: T
+  sort_id: 5
   config: '[["status__state","includes",{"closed":"Closed"}]]'
   columns:
     - column_id: 1
+      bits: 1
       sort: 1
       width: 100
       heading: Ticket
     - column_id: 7
+      bits: 1
       sort: 2
       width: 150
       heading: Date Closed
     - column_id: 3
+      bits: 1
       sort: 3
       width: 300
       heading: Subject
     - column_id: 4
+      bits: 1
       sort: 4
       width: 185
       heading: From
     - column_id: 5
+      bits: 1
+      sort: 1
       sort: 5
       width: 85
       heading: Priority
     - column_id: 8
+      bits: 1
+      sort: 1
       sort: 6
       width: 160
       heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
 
-- title: Unanswered
+- title: Unassigned
   parent_id: 1
   flags: 0x2b
   root: T
   sort: 1
-  config: '[["isanswered","nset",null]]'
+  config: '[["assignee","!assigned",null]]'
   columns:
     - column_id: 1
+      bits: 1
+      sort: 1
       sort: 1
       width: 100
       heading: Ticket
     - column_id: 10
+      bits: 1
+      sort: 1
       sort: 2
       width: 150
       heading: Last Update
     - column_id: 3
+      bits: 1
+      sort: 1
       sort: 3
       width: 300
       heading: Subject
     - column_id: 4
+      bits: 1
+      sort: 1
       sort: 4
       width: 185
       heading: From
     - column_id: 5
+      bits: 1
+      sort: 1
       sort: 5
       width: 85
       heading: Priority
-    - column_id: 8
+    - column_id: 11
+      bits: 1
+      sort: 1
       sort: 6
       width: 160
-      heading: Assigned To
+      heading: Department
 
-- title: Unassigned
+- title: Assigned
   parent_id: 1
-  flags: 0x2b
+  flags: 0x03
   root: T
   sort: 2
-  config: '[["assignee","!assigned",null]]'
+  config: '[["assignee","assigned",null]]'
   columns:
     - column_id: 1
+      bits: 1
       sort: 1
       width: 100
       heading: Ticket
     - column_id: 10
+      bits: 1
       sort: 2
       width: 150
       heading: Last Update
     - column_id: 3
+      bits: 1
       sort: 3
       width: 300
       heading: Subject
     - column_id: 4
+      bits: 1
       sort: 4
       width: 185
       heading: From
     - column_id: 5
+      bits: 1
       sort: 5
       width: 85
       heading: Priority
-    - column_id: 11
+    - column_id: 8
+      bits: 1
       sort: 6
       width: 160
-      heading: Department
+      heading: Assigned To
 
-- title: My Tickets
+- title: Overdue
   parent_id: 1
   flags: 0x2b
   root: T
-  sort: 4
-  config: '[["assignee","includes",{"M":"Me", "T":"One of my teams"}]]'
+  sort: 3
+  sort_id: 4
+  config: '[["isoverdue","set",null]]'
   columns:
     - column_id: 1
+      bits: 1
       sort: 1
       width: 100
       heading: Ticket
     - column_id: 10
-      sort: 2
+      bits: 1
+      sort: 1
+      sort: 9
       width: 150
-      heading: Last Update
+      heading: Due Date
     - column_id: 3
+      bits: 1
+      sort: 1
       sort: 3
       width: 300
       heading: Subject
     - column_id: 4
+      bits: 1
+      sort: 1
       sort: 4
       width: 185
       heading: From
     - column_id: 5
+      bits: 1
+      sort: 1
       sort: 5
       width: 85
       heading: Priority
-    - column_id: 11
+    - column_id: 8
+      bits: 1
+      sort: 1
       sort: 6
       width: 160
-      heading: Department
+      heading: Assigned To
+
+- title: Personal Tickets
+  parent_id: 3
+  flags: 0x2b
+  root: T
+  sort: 1
+  config: '{"criteria":[["assignee","includes",{"M":"Me"}]]}'
+
+- title: Teams Tickets
+  parent_id: 3
+  flags: 0x2b
+  root: T
+  sort: 2
+  config: '{"criteria":[["team_id","set",null]],"conditions":[]}'
+  filter: team_id
diff --git a/include/i18n/en_US/queue_sort.yaml b/include/i18n/en_US/queue_sort.yaml
index 34133fc7a532804b42073cb066119abca969e0f4..09b0fb87f6530db783274f2716be91ff4f1cc8d3 100644
--- a/include/i18n/en_US/queue_sort.yaml
+++ b/include/i18n/en_US/queue_sort.yaml
@@ -1,7 +1,7 @@
 # Columns are not necessary and a default list is used if no columns are
 # specified.
 #
-# Fields: 
+# Fields:
 #   id:
 ---
 - id: 1
@@ -19,3 +19,11 @@
 - id: 4
   name: Due Date
   columns: '["-est_duedate"]'
+
+- id: 5
+  name: Closed Date
+  columns: '["-closed"]'
+
+- id: 6
+  name: Create Date
+  columns: '["-created"]'
diff --git a/include/staff/profile.inc.php b/include/staff/profile.inc.php
index 627842f6942e7d11339107507d45203bc84f4535..78bab30bf2c38abdd2638522e96cc6526fa6cae1 100644
--- a/include/staff/profile.inc.php
+++ b/include/staff/profile.inc.php
@@ -131,13 +131,6 @@ if ($avatar->isChangeable()) { ?>
         </tr>
         <tr>
           <td colspan="2">
-            <label class="checkbox">
-            <input type="checkbox" name="show_assigned_tickets"
-              <?php echo $cfg->showAssignedTickets() ? 'disabled="disabled" ' : ''; ?>
-              <?php echo $staff->show_assigned_tickets ? 'checked="checked"' : ''; ?> />
-              <?php echo __('Show assigned tickets on open queue.'); ?>
-            <i class="help-tip icon-question-sign" href="#show_assigned_tickets"></i>
-            </label>
             <label class="checkbox">
             <input type="checkbox" name="onvacation"
               <?php echo ($staff->onvacation) ? 'checked="checked"' : ''; ?> />
@@ -223,6 +216,30 @@ if ($avatar->isChangeable()) { ?>
                 <div class="error"><?php echo $errors['default_from_name']; ?></div>
             </td>
         </tr>
+        <tr>
+            <td>
+                <?php echo __('Default Ticket Queue'); ?>:
+            </td>
+            <td>
+                <select name="default_ticket_queue_id">
+                 <option value="0">&mdash; <?php echo __('system default');?> &mdash;</option>
+                 <?php
+                 $queues = CustomQueue::queues()
+                    ->filter(Q::any(array(
+                        'flags__hasbit' => CustomQueue::FLAG_PUBLIC,
+                        'staff_id' => $thisstaff->getId(),
+                    )))
+                    ->all();
+                 foreach ($queues as $q) { ?>
+                  <option value="<?php echo $q->id; ?>" <?php
+                    if ($q->getId() == $staff->default_ticket_queue_id) echo 'selected="selected"'; ?> >
+                   <?php echo $q->getFullName(); ?></option>
+                 <?php
+                 } ?>
+                </select>
+            </td>
+        </tr>
+
         <tr>
             <td><?php echo __('Thread View Order');?>:
               <div class="faded"><?php echo __('The order of thread entries');?></div>
diff --git a/include/staff/queues-ticket.inc.php b/include/staff/queues-ticket.inc.php
index f23f2e9fe4440c40d8ae2d2c789a9a8263bb0814..cc878e894b32a1ae182644bfe0a417790f8e6d13 100644
--- a/include/staff/queues-ticket.inc.php
+++ b/include/staff/queues-ticket.inc.php
@@ -46,7 +46,7 @@
     <tbody class="sortable-rows" data-sort="qsort">
 <?php
 $all_queues = CustomQueue::queues()->getIterator();
-$emitLevel = function($queues, $level=0) use ($all_queues, &$emitLevel) { 
+$emitLevel = function($queues, $level=0) use ($all_queues, &$emitLevel) {
     $queues->sort(function($a) { return $a->sort; });
     foreach ($queues as $q) { ?>
       <tr>
@@ -54,7 +54,7 @@ $emitLevel = function($queues, $level=0) use ($all_queues, &$emitLevel) {
         <td colspan="<?php echo max(1, $level); ?>"></td>
 <?php } ?>
         <td>
-          <input type="checkbox" class="mass checkbox" value="<?php echo $q->id; ?>" />
+          <input type="checkbox" class="mass checkbox"  name="qids[]" value="<?php echo $q->id; ?>" />
           <input type="hidden" name="qsort[<?php echo $q->id; ?>]"
             value="<?php echo $q->sort; ?>"/>
         </td>
diff --git a/include/staff/templates/advanced-search.tmpl.php b/include/staff/templates/advanced-search.tmpl.php
index 33949c8291382174b12203537da588ae1121d86f..577f66962305b047b6165a66b3a41ebb8ad91106 100644
--- a/include/staff/templates/advanced-search.tmpl.php
+++ b/include/staff/templates/advanced-search.tmpl.php
@@ -3,8 +3,14 @@ $parent_id = $_REQUEST['parent_id'] ?: $search->parent_id;
 if ($parent_id
     && (!($parent = CustomQueue::lookup($parent_id)))
 ) {
-    $parent_id = null;
+    $parent_id = 0;
 }
+
+$queues = array();
+foreach (CustomQueue::queues() as  $q)
+    $queues[$q->id] = $q->getFullName();
+asort($queues);
+$queues = array(0 => ('—'.__("My Searches").'—')) + $queues;
 ?>
 <div id="advanced-search" class="advanced-search">
 <h3 class="drag-handle"><?php echo __('Advanced Ticket Search');?></h3>
@@ -14,27 +20,27 @@ if ($parent_id
 <form action="#tickets/search" method="post" name="search">
 
   <div class="flex row">
-    <div class="span6">
+    <div class="span12">
       <select name="parent_id">
-          <option value="0" <?php
-              if (!$parent_id) echo 'selected="selected"';
-              ?>><?php echo '—'.__("My Searches").'—'; ?></option>
           <?php
-foreach (CustomQueue::queues()->order_by('sort', 'title') as $q) { ?>
-          <option value="<?php echo $q->id; ?>"
-              <?php if ($parent_id == $q->id) echo 'selected="selected"'; ?>
-              ><?php echo $q->getFullName(); ?></option>
+foreach ($queues as $id => $name) {
+    ?>
+          <option value="<?php echo $id; ?>"
+              <?php if ($parent_id == $id) echo 'selected="selected"'; ?>
+              ><?php echo $name; ?></option>
 <?php       } ?>
       </select>
-    </div><div class="span6">
-      <input name="name" type="text" size="30" 
+    </div>
+   </div>
+   <div class="flex row">
+    <div class="span12">
+      <input name="name" type="text" size="30"
         value="<?php echo Format::htmlchars($search->getName()); ?>"
         placeholder="<?php
         echo __('Enter a title for the search queue'); ?>"/>
       <div class="error"><?php echo Format::htmlchars($errors['name']); ?></div>
     </div>
   </div>
-
 <ul class="tabs">
     <li class="active"><a href="#criteria"><?php echo __('Criteria'); ?></a></li>
     <li><a href="#columns"><?php echo __('Columns'); ?></a></li>
@@ -61,7 +67,7 @@ foreach (CustomQueue::queues()->order_by('sort', 'title') as $q) { ?>
 </div>
 
 <div class="tab_content hidden" id="columns">
-    <?php 
+    <?php
     $queue = $search;
     include STAFFINC_DIR . "templates/queue-columns.tmpl.php"; ?>
 </div>
diff --git a/include/staff/templates/queue-navigation.tmpl.php b/include/staff/templates/queue-navigation.tmpl.php
index 478d1d89671d20ef707045788b223f6e363d6e8c..b903f29fd12e025df3e519af361d0eb693e89a52 100644
--- a/include/staff/templates/queue-navigation.tmpl.php
+++ b/include/staff/templates/queue-navigation.tmpl.php
@@ -5,14 +5,15 @@
 // $selected - <bool> true if this queue is currently active
 // $child_selected - <bool> true if the selected queue is a descendent
 $this_queue = $q;
-$selected = $_REQUEST['queue'] == $this_queue->getId();
+$selected = (!isset($_REQUEST['a'])  && $_REQUEST['queue'] == $this_queue->getId());
 ?>
 <li class="top-queue item <?php if ($child_selected) echo 'child active';
     elseif ($selected) echo 'active'; ?>">
-  <a href="<?php echo $this_queue->getHref(); ?>"><i class="icon-sort-down pull-right"></i><?php echo $this_queue->getName(); ?></a>
+  <a href="<?php echo $this_queue->getHref(); ?>"
+    class="Ticket"><i class="small icon-sort-down pull-right"></i><?php echo $this_queue->getName(); ?></a>
   <div class="customQ-dropdown">
     <ul class="scroll-height">
-      <!-- Add top-level queue (with count) --> 
+      <!-- Add top-level queue (with count) -->
       <li class="top-level">
         <span class="pull-right newItemQ queue-count"
           data-queue-id="<?php echo $q->id; ?>"><span class="faded-more">-</span>
@@ -29,22 +30,23 @@ $selected = $_REQUEST['queue'] == $this_queue->getId();
       <!-- Start Dropdown and child queues -->
       <?php foreach ($this_queue->getPublicChildren() as $q) {
           include 'queue-subnavigation.tmpl.php';
-      }
-      $first_child = true;
-      foreach ($this_queue->getMyChildren() as $q) {
-        if ($first_child) {
-            $first_child = false;
-            echo '<li class="personalQ"></li>';
-        }
-        include 'queue-subnavigation.tmpl.php';
       } ?>
+      <!-- Personal Queues -->
+      <?php
+      $queues = $this_queue->getMyChildren();
+      if (count($queues)) { ?>
+      <li class="personalQ"></li>
+      <?php foreach ($queues as $q) {
+        include 'queue-subnavigation.tmpl.php';
+       }
+      }?>
     </ul>
     <!-- Add Queue button sticky at the bottom -->
     <div class="add-queue">
       <a class="full-width" onclick="javascript:
         var pid = <?php echo $this_queue->getId() ?: 0; ?>;
         $.dialog('ajax.php/tickets/search?parent_id='+pid, 201);">
-        <span><i class="green icon-plus-sign"></i> 
+        <span><i class="green icon-plus-sign"></i>
           <?php echo __('Add personal queue'); ?></span>
       </a>
     </div>
diff --git a/include/staff/templates/queue-savedsearches-nav.tmpl.php b/include/staff/templates/queue-savedsearches-nav.tmpl.php
index 7bc616a5fa1fb96ab42dca36dd849a89f5a47534..d6c57fdaa6d4569199f6dfeb2ebe41f809568e17 100644
--- a/include/staff/templates/queue-savedsearches-nav.tmpl.php
+++ b/include/staff/templates/queue-savedsearches-nav.tmpl.php
@@ -11,7 +11,7 @@
   if (!isset($_SESSION['advsearch']))
       $href = 'href="#" data-dialog="ajax.php/tickets/search"';
 ?>
-  <a <?php echo $href; ?>><i class="icon-sort-down pull-right"></i><?php echo __('Search');
+  <a class="Ticket" <?php echo $href; ?>><i class="icon-sort-down pull-right"></i><?php echo __('Search');
   ?></a>
   <div class="customQ-dropdown">
     <ul class="scroll-height">
@@ -25,25 +25,24 @@
       )) as $q) {
         include 'queue-subnavigation.tmpl.php';
       } ?>
-    <?php if (isset($_SESSION['advsearch'])
-        && count($_SESSION['advsearch'])) { ?>
+     <?php
+     if (isset($_SESSION['advsearch'])) { ?>
       <li>
         <h4><?php echo __('Recent Searches'); ?></h4>
-      </li>
-    <?php
+        <?php
           foreach ($_SESSION['advsearch'] as $token=>$criteria) {
               $q = new SavedSearch(array('root' => 'T'));
               $q->id = 'adhoc,'.$token;
               $q->title = $q->describeCriteria($criteria);
 
               include 'queue-subnavigation.tmpl.php';
-          }
-      } ?>
-      <!-- Dropdown Titles -->      
-      
+          } ?>
+      </li>
+     <?php
+     } ?>
     </ul>
     <!-- Add Queue button sticky at the bottom -->
-      
+
      <div class="add-queue">
       <a class="full-width" onclick="javascript:
         $.dialog('ajax.php/tickets/search', 201);">
diff --git a/include/staff/templates/queue-sort.tmpl.php b/include/staff/templates/queue-sort.tmpl.php
index d83e8f02f964c487a4a84373c3e0d7e04d2acf6a..c84e3d763681041c0218e1a17c8047f0e4650394 100644
--- a/include/staff/templates/queue-sort.tmpl.php
+++ b/include/staff/templates/queue-sort.tmpl.php
@@ -11,7 +11,10 @@ elseif (strpos($_GET['sort'], 'qs-') === 0) {
     $sort_id = substr($_GET['sort'], 3);
     $queuesort = QueueSort::lookup($sort_id);
     $sort_dir = $_GET['dir'];
+} elseif ($queuesort = $queue->getDefaultSort()) {
+    $sort_id = $queuesort->id;
 }
+
 ?>
 
 <span class="action-button muted" data-dropdown="#sort-dropdown"
diff --git a/include/staff/templates/queue-tickets.tmpl.php b/include/staff/templates/queue-tickets.tmpl.php
index 045d668e14fc96497f7955e7ff849c1b52049e41..0c8fe8c9c617be7969f386f52ceb65adb3a2876b 100644
--- a/include/staff/templates/queue-tickets.tmpl.php
+++ b/include/staff/templates/queue-tickets.tmpl.php
@@ -104,7 +104,7 @@ $pageNav->setURL('tickets.php', $args);
     <span class="valign-helper"></span>
     <?php
     require 'queue-quickfilter.tmpl.php';
-    if (count($queue->sorts))
+    if ($queue->getSortOptions())
         require 'queue-sort.tmpl.php';
     ?>
   </div>
@@ -233,6 +233,7 @@ if ($canManageTickets) { ?>
         <th style="width:12px"></th>
 <?php
 }
+
 foreach ($columns as $C) {
     $heading = Format::htmlchars($C->getLocalHeading());
     if ($C->isSortable()) {
diff --git a/include/staff/templates/sub-navigation.tmpl.php b/include/staff/templates/sub-navigation.tmpl.php
index ecf520faf55f2712be717500b08dd5700422a737..bb69b58545668bdc9c06a8dbdd39f946da1ffb2b 100644
--- a/include/staff/templates/sub-navigation.tmpl.php
+++ b/include/staff/templates/sub-navigation.tmpl.php
@@ -1,16 +1,20 @@
 <?php
-if(($subnav=$nav->getSubMenu()) && is_array($subnav)){
-    $activeMenu=$nav->getActiveMenu();
-    if($activeMenu>0 && !isset($subnav[$activeMenu-1]))
-        $activeMenu=0;
-    $info = $nav->getSubNavInfo();
+if (!$nav || !($subnav=$nav->getSubMenu()) || !is_array($subnav))
+    return;
+
+$activeMenu=$nav->getActiveMenu();
+if ($activeMenu>0 && !isset($subnav[$activeMenu-1]))
+    $activeMenu=0;
+
+$info = $nav->getSubNavInfo();
 ?>
 <nav class="<?php echo @$info['class']; ?>" id="<?php echo $info['id']; ?>">
   <ul id="sub_nav">
 <?php
     foreach($subnav as $k=> $item) {
         if (is_callable($item)) {
-            $item($tab, $nav);
+            if ($item($nav) && !$activeMenu)
+                $activeMenu = 'x';
             continue;
         }
         if($item['droponly']) continue;
@@ -35,7 +39,6 @@ if(($subnav=$nav->getSubMenu()) && is_array($subnav)){
         echo sprintf('<li><a class="%s" href="%s" title="%s" id="%s" %s>%s</a></li>',
                 $class, $item['href'], $item['title'], $id, $attr, $item['desc']);
     }
-}
 ?>
   </ul>
 </nav>
diff --git a/scp/css/scp.css b/scp/css/scp.css
index 22b78ce32e9dc69f371ccf65e5d9d745e8324ba8..13d4c964347635b446a4e3db4c44315449c02da7 100644
--- a/scp/css/scp.css
+++ b/scp/css/scp.css
@@ -372,8 +372,8 @@ a time {
     text-decoration: none;
 }
 
-#sub_nav a.active, #sub_nav li.active > a,
-#customQ_nav .jb-overflowmenu-menu li.active.item > a {
+#sub_nav a.active, #sub_nav li.active > a, #sub_nav li.child.active > a
+#customQ_nav .jb-overflowmenu-menu-primary li.item > a.active {
     font-weight:bold;
 }
 
@@ -904,8 +904,8 @@ a time {
 /**********************End Custom Queues Dropdown******************/
 
 /*************Qeueue Title Config dropdown options****************/
-.configureQ { 
-    display:block; 
+.configureQ {
+    display:block;
     float:left;
     color:rgba(0,0,0,.2);
     margin:4px 0 0 4px;
@@ -922,7 +922,7 @@ a time {
 }
 .configureQ:hover > .noclick-dropdown {
     display:block;
-    
+
 }
 .configureQ > .noclick-dropdown:before {
     top: 19px;
diff --git a/scp/tickets.php b/scp/tickets.php
index 0c8f0b98fcb5c94d97e8e027d6cdd19576dbe42b..e2fe93c79bff25b3e46aa4112e13dcd1ac362e8e 100644
--- a/scp/tickets.php
+++ b/scp/tickets.php
@@ -103,6 +103,7 @@ if (!$ticket) {
         $queue = new AdhocSearch(array(
             'id' => "adhoc,$key",
             'root' => 'T',
+            'title' => __('Advanced Search'),
         ));
         $queue->config = $_SESSION['advsearch'][$key];
     }
@@ -447,8 +448,11 @@ as $q) {
         // A queue is selected if it is the one being displayed. It is
         // "child" selected if its ID is in the path of the one selected
         $child_selected = $queue
-            && false !== strpos($queue->getPath(), "/{$q->getId()}/");
+            && ($queue->parent_id == $q->getId()
+                || false !== strpos($queue->getPath(), "/{$q->getId()}/"));
         include STAFFINC_DIR . 'templates/queue-navigation.tmpl.php';
+
+        return ($child_selected || $selected);
     });
 }
 
@@ -461,6 +465,8 @@ $nav->addSubMenu(function() use ($queue) {
     $searches = SavedSearch::forStaff($thisstaff)->getIterator();
 
     include STAFFINC_DIR . 'templates/queue-savedsearches-nav.tmpl.php';
+
+    return ($child_selected || $selected);
 });