diff --git a/include/class.queue.php b/include/class.queue.php
index 48f82c81f44e47f7ee8dac4a8bac2eb75c84679b..5e9f3dcbf58b778bed1fb2c856f307c8d7390ec3 100644
--- a/include/class.queue.php
+++ b/include/class.queue.php
@@ -998,7 +998,8 @@ class CustomQueue extends VerySimpleModel {
     }
 
     function inheritCriteria() {
-        return $this->flags & self::FLAG_INHERIT_CRITERIA;
+        return $this->flags & self::FLAG_INHERIT_CRITERIA &&
+            $this->parent_id;
     }
 
     function inheritColumns() {
@@ -1176,8 +1177,7 @@ class CustomQueue extends VerySimpleModel {
 
         // Set basic queue information
         $this->path = $this->buildPath();
-        $this->setFlag(self::FLAG_INHERIT_CRITERIA,
-            $this->parent_id > 0 && isset($vars['inherit']));
+        $this->setFlag(self::FLAG_INHERIT_CRITERIA, $this->parent_id);
         $this->setFlag(self::FLAG_INHERIT_COLUMNS,
             isset($vars['inherit-columns']));
         $this->setFlag(self::FLAG_INHERIT_EXPORT,
@@ -1392,8 +1392,10 @@ class CustomQueue extends VerySimpleModel {
 
         $queue = new static($vars);
         $queue->created = SqlFunction::NOW();
-        if (!isset($vars['flags']))
+        if (!isset($vars['flags'])) {
+            $queue->setFlag(self::FLAG_PUBLIC);
             $queue->setFlag(self::FLAG_QUEUE);
+        }
 
         return $queue;
     }
diff --git a/include/class.search.php b/include/class.search.php
index c32916504b3d4200ccdde403e00ebe4656c4a9cb..469c3f5e09d164074d0601f20fe85ebfdce70574 100644
--- a/include/class.search.php
+++ b/include/class.search.php
@@ -855,7 +855,7 @@ class SavedQueue extends CustomQueue {
 
         $queues = SavedQueue::objects()
             ->filter(Q::any(array(
-                'flags__hasbit' => CustomQueue::FLAG_PUBLIC,
+                'flags__hasbit' => CustomQueue::FLAG_QUEUE,
                 'staff_id' => $agent->getId(),
             )));
 
diff --git a/include/i18n/en_US/queue.yaml b/include/i18n/en_US/queue.yaml
index ab2b1a4bbb3453e14c7843b81a75d65751b94d9e..b7325620c2df64ffb66322a400d05ca81879258e 100644
--- a/include/i18n/en_US/queue.yaml
+++ b/include/i18n/en_US/queue.yaml
@@ -29,6 +29,7 @@
 ---
 - id: 1
   title: Open
+  parent_id: 0
   flags: 0x03
   sort: 1
   root: T
@@ -69,14 +70,17 @@
     - sort_id: 2
     - sort_id: 3
     - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
 
 - id: 2
-  title: Answered
+  title: Open
   parent_id: 1
-  flags: 0x03
+  flags: 0x2b
   root: T
-  sort: 2
-  config: '[["isanswered","set",null]]'
+  sort: 1
+  sort_id: 4
+  config: '{"criteria":[["isanswered","nset",null]],"conditions":[]}'
   columns:
     - column_id: 1
       bits: 1
@@ -87,7 +91,7 @@
       bits: 1
       sort: 2
       width: 150
-      heading: Last Update
+      heading: Last Updated
     - column_id: 3
       bits: 1
       sort: 3
@@ -108,13 +112,93 @@
       sort: 6
       width: 160
       heading: Assigned To
-  sorts:
-    - sort_id: 1
-    - sort_id: 2
-    - sort_id: 3
-    - sort_id: 4
 
 - id: 3
+  title: Answered
+  parent_id: 1
+  flags: 0x2b
+  root: T
+  sort: 1
+  sort_id: 4
+  config: '{"criteria":[["isanswered","set",null]],"conditions":[]}'
+  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
+
+- id: 4
+  title: Overdue
+  parent_id: 1
+  flags: 0x2b
+  root: T
+  sort: 2
+  sort_id: 4
+  config: '{"criteria":[["isoverdue","set",null]],"conditions":[]}'
+  columns:
+    - column_id: 1
+      bits: 1
+      sort: 1
+      width: 100
+      heading: Ticket
+    - column_id: 9
+      bits: 1
+      sort: 1
+      sort: 9
+      width: 150
+      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: 8
+      bits: 1
+      sort: 1
+      sort: 6
+      width: 160
+      heading: Assigned To
+
+- id: 5
   title: My Tickets
   parent_id: 0
   flags: 0x03
@@ -157,25 +241,27 @@
     - sort_id: 2
     - sort_id: 3
     - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
 
-- id: 4
-  title: Closed
-  flags: 0x03
-  sort: 4
+- id: 6
+  title: Assigned to Me
+  parent_id: 5
+  flags: 0x2b
   root: T
-  sort_id: 5
-  config: '[["status__state","includes",{"closed":"Closed"}]]'
+  sort: 1
+  config: '{"criteria":[["assignee","includes",{"M":"Me"}]],"conditions":[]}'
   columns:
     - column_id: 1
       bits: 1
       sort: 1
       width: 100
       heading: Ticket
-    - column_id: 7
+    - column_id: 10
       bits: 1
       sort: 2
       width: 150
-      heading: Date Closed
+      heading: Last Update
     - column_id: 3
       bits: 1
       sort: 3
@@ -188,28 +274,29 @@
       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: Closed By
+      heading: Department
   sorts:
-    - sort_id: 5
     - sort_id: 1
     - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
 
-- id: 5
-  title: Assigned
-  parent_id: 1
-  flags: 0x03
+- id: 7
+  title: Assigned to Teams
+  parent_id: 5
+  flags: 0x2b
   root: T
-  sort: 3
-  config: '[["assignee","assigned",null]]'
+  sort: 2
+  config: '{"criteria":[["assignee","!includes",{"M":"Me"}]],"conditions":[]}'
   columns:
     - column_id: 1
       bits: 1
@@ -236,53 +323,323 @@
       sort: 5
       width: 85
       heading: Priority
+    - column_id: 14
+      bits: 1
+      sort: 6
+      width: 160
+      heading: Team
+  sorts:
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 8
+  parent_id: 0
+  title: Closed
+  flags: 0x03
+  sort: 4
+  root: T
+  sort_id: 5
+  config: '{"criteria":[["status__state","includes",{"closed":"Closed"}]],"conditions":[]}'
+  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: 8
       bits: 1
+      sort: 1
       sort: 6
       width: 160
-      heading: Assigned To
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
 
-- id: 6
-  title: Overdue
-  parent_id: 1
+- id: 9
+  parent_id: 8
+  title: Today
   flags: 0x2b
+  sort: 1
   root: T
-  sort: 4
-  sort_id: 4
-  config: '[["isoverdue","set",null]]'
+  sort_id: 5
+  config: '{"criteria":[["closed","period","td"]],"conditions":[]}'
   columns:
     - column_id: 1
       bits: 1
       sort: 1
       width: 100
       heading: Ticket
-    - column_id: 9
+    - 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: 8
       bits: 1
       sort: 1
-      sort: 9
+      sort: 6
+      width: 160
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 10
+  parent_id: 8
+  title: Yesterday
+  flags: 0x2b
+  sort: 2
+  root: T
+  sort_id: 5
+  config: '{"criteria":[["closed","period","yd"]],"conditions":[]}'
+  columns:
+    - column_id: 1
+      bits: 1
+      sort: 1
+      width: 100
+      heading: Ticket
+    - column_id: 7
+      bits: 1
+      sort: 2
       width: 150
-      heading: Due Date
+      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: 8
+      bits: 1
+      sort: 1
+      sort: 6
+      width: 160
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 11
+  parent_id: 8
+  title: This Week
+  flags: 0x2b
+  sort: 3
+  root: T
+  sort_id: 5
+  config: '{"criteria":[["closed","period","tw"]],"conditions":[]}'
+  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: 8
+      bits: 1
+      sort: 1
+      sort: 6
+      width: 160
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 12
+  parent_id: 8
+  title: This Month
+  flags: 0x2b
+  sort: 4
+  root: T
+  sort_id: 5
+  config: '{"criteria":[["closed","period","tm"]],"conditions":[]}'
+  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: 8
       bits: 1
       sort: 1
+      sort: 6
+      width: 160
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 13
+  parent_id: 8
+  title: This Quarter
+  flags: 0x2b
+  sort: 5
+  root: T
+  sort_id: 6
+  config: '{"criteria":[["closed","period","tq"]],"conditions":[]}'
+  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
+    - column_id: 8
       bits: 1
       sort: 1
-      sort: 5
-      width: 85
-      heading: Priority
+      sort: 6
+      width: 160
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
+
+- id: 14
+  parent_id: 8
+  title: This Year
+  flags: 0x2b
+  sort: 6
+  root: T
+  sort_id: 7
+  config: '{"criteria":[["closed","period","ty"]],"conditions":[]}'
+  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: 8
       bits: 1
       sort: 1
       sort: 6
       width: 160
-      heading: Assigned To
+      heading: Closed By
+  sorts:
+    - sort_id: 5
+    - sort_id: 1
+    - sort_id: 2
+    - sort_id: 3
+    - sort_id: 4
+    - sort_id: 6
+    - sort_id: 7
diff --git a/include/i18n/en_US/queue_column.yaml b/include/i18n/en_US/queue_column.yaml
index 6f7419a4af0e0074293b957b07f813668d1889e4..03250da19a83b3118bbd04eb4792218c232928dd 100644
--- a/include/i18n/en_US/queue_column.yaml
+++ b/include/i18n/en_US/queue_column.yaml
@@ -129,3 +129,10 @@
   truncate: "wrap"
   annotations: "[]"
   conditions: "[]"
+
+- id: 14
+  name: "Team"
+  primary: "team_id"
+  truncate: "wrap"
+  annotations: "[]"
+  conditions: "[]"
diff --git a/include/i18n/en_US/queue_sort.yaml b/include/i18n/en_US/queue_sort.yaml
index 09b0fb87f6530db783274f2716be91ff4f1cc8d3..35cd47d4a2dd1b12b3ff6af4931a733ba9172eea 100644
--- a/include/i18n/en_US/queue_sort.yaml
+++ b/include/i18n/en_US/queue_sort.yaml
@@ -27,3 +27,7 @@
 - id: 6
   name: Create Date
   columns: '["-created"]'
+
+- id: 7
+  name: Update Date
+  columns: '["-lastupdate"]'
diff --git a/include/staff/queue.inc.php b/include/staff/queue.inc.php
index b936699df859013ba8706f9c27daba2c310a840e..fa9862bb830d4997296aad36fb3fbbbe2bc154b2 100644
--- a/include/staff/queue.inc.php
+++ b/include/staff/queue.inc.php
@@ -4,10 +4,11 @@
 if(!defined('OSTADMININC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access Denied');
 
 $info = $qs = array();
-
+$parent = null;
 if (!$queue) {
     $queue = CustomQueue::create(array(
         'flags' => CustomQueue::FLAG_QUEUE,
+        'parent_id' => 0,
     ));
 }
 if ($queue->__new__) {
@@ -16,6 +17,7 @@ if ($queue->__new__) {
     $submit_text=__('Create');
 }
 else {
+    $parent = $queue->parent;
     $title=__('Manage Custom Queue');
     $action='update';
     $submit_text=__('Save Changes');
@@ -29,8 +31,6 @@ else {
   <input type="hidden" name="do" value="<?php echo $action; ?>">
   <input type="hidden" name="a" value="<?php echo Format::htmlchars($_REQUEST['a']); ?>">
   <input type="hidden" name="id" value="<?php echo $info['id']; ?>">
-  <input type="hidden" name="root" value="<?php echo Format::htmlchars($_REQUEST['t']); ?>">
-
   <h2><a href="settings.php?t=tickets#queues"><?php echo __('Ticket Queues'); ?></a>
       <i class="icon-caret-right" style="color:rgba(0,0,0,.3);"></i> <?php echo $title; ?>
       <?php if (isset($queue->id)) { ?><small>
@@ -63,20 +63,33 @@ else {
         <br/>
         <div class="error"><?php echo $errors['queue-name']; ?></div>
         <br/>
+        <div>
+          <div><strong><?php echo __("Parent Queue"); ?>:</strong></div>
+          <select name="parent_id" id="parent-id">
+            <option value="0">— <?php echo __('Top-Level Queue'); ?> —</option>
+  <?php foreach (CustomQueue::queues() as $cq) {
+          // Queue cannot be a descendent of itself
+          if ($cq->id == $queue->id)
+              continue;
+          if (strpos($cq->path, "/{$queue->id}/") !== false)
+              continue;
+  ?>
+            <option value="<?php echo $cq->id; ?>"
+              <?php if ($cq->getId() == $queue->parent_id) echo 'selected="selected"'; ?>
+              ><?php echo $cq->getFullName(); ?></option>
+  <?php } ?>
+          </select>
+          <span class="error"><?php echo Format::htmlchars($errors['parent_id']); ?></span>
+        </div>
+        <div class="faded <?php echo $parent ? ' ': 'hidden'; ?>"
+            id="inherited-parent" style="margin-top: 1em;">
+          <div><strong><i class="icon-caret-down"></i>&nbsp; <?php echo  __('Inherited Criteria'); ?></strong></div>
+          <div id="parent-criteria">
+            <?php echo $parent ? nl2br(Format::htmlchars($parent->describeCriteria())) : ''; ?>
+          </div>
+        </div>
+        <hr/>
         <div><strong><?php echo __("Queue Search Criteria"); ?></strong></div>
-        <label class="checkbox" style="line-height:1.3em">
-          <input type="checkbox" class="checkbox" name="inherit" <?php
-            if ($queue->inheritCriteria()) echo 'checked="checked"';
-            ?>/>
-          <?php echo __('Include parent search criteria');
-          if ($queue->parent) { ?>
-            <span id="parent_q_crit" class="faded">
-            <i class="icon-caret-right"></i>
-            <br/><?php
-              echo nl2br(Format::htmlchars($queue->parent->describeCriteria()));
-            ?></span>
-<?php     } ?>
-        </label>
         <hr/>
         <div class="error"><?php echo $errors['criteria']; ?></div>
         <div class="advanced-search">
@@ -89,27 +102,6 @@ else {
         </div>
       </td>
       <td style="width:35%; padding-left:40px; vertical-align:top">
-        <div><strong><?php echo __("Parent Queue"); ?>:</strong></div>
-        <select name="parent_id" onchange="javascript:
-        $('#parent_q_crit').toggle($(this).find(':selected').val()
-          == <?php echo $queue->parent_id ?: 0; ?>);">
-          <option value="0">— <?php echo __('Top-Level Queue'); ?> —</option>
-<?php foreach (CustomQueue::queues() as $cq) {
-        // Queue cannot be a descendent of itself
-        if ($cq->id == $queue->id)
-            continue;
-        if (strpos($cq->path, "/{$queue->id}/") !== false)
-            continue;
-?>
-          <option value="<?php echo $cq->id; ?>"
-            <?php if ($cq->getId() == $queue->parent_id) echo 'selected="selected"'; ?>
-            ><?php echo $cq->getFullName(); ?></option>
-<?php } ?>
-        </select>
-        <div class="error"><?php echo Format::htmlchars($errors['parent_id']); ?></div>
-
-        <br/>
-        <br/>
         <div><strong><?php echo __("Quick Filter"); ?></strong></div>
         <hr/>
         <select name="filter">
@@ -309,6 +301,27 @@ var Q = setInterval(function() {
   );
 } ?>
 }, 25);
+$('select#parent-id').change(function() {
+    var form = $(this).closest('form');
+    var qid = parseInt($(this).val(), 10) || 0;
+
+    if (qid > 0) {
+        $.ajax({
+            type: "GET",
+            url: 'ajax.php/queue/'+qid,
+            dataType: 'json',
+            success: function(queue) {
+                $('#parent-name', form).html(queue.name);
+                $('#parent-criteria', form).html(queue.criteria);
+                $('#inherited-parent', form).fadeIn();
+                }
+            })
+            .done(function() { })
+            .fail(function() { });
+    } else {
+        $('#inherited-parent', form).fadeOut();
+    }
+});
 }();
 </script>
         </table>
diff --git a/include/staff/templates/advanced-search-criteria.tmpl.php b/include/staff/templates/advanced-search-criteria.tmpl.php
index 9348cf79be9a81e3cb762f1bcaf96604acedf437..309ce63cd117687c0a530cfe6935609c38e05729 100644
--- a/include/staff/templates/advanced-search-criteria.tmpl.php
+++ b/include/staff/templates/advanced-search-criteria.tmpl.php
@@ -11,7 +11,7 @@ if (($search instanceof SavedQueue) && !$search->checkOwnership($thisstaff)) {
     echo '<div class="faded">'.  nl2br(Format::htmlchars($search->describeCriteria())).
                     '</div><br>';
     // Show any supplemental filters
-    if ($matches  && count($info)) {
+    if ($matches) {
         ?>
         <div id="ticket-flags"
             style="padding:5px; border-top: 1px dotted #777;">
diff --git a/include/staff/templates/queue-navigation.tmpl.php b/include/staff/templates/queue-navigation.tmpl.php
index d1061c8d43da152d5686b428fe6ee0b50943f8f1..380e03af961d5f8f6901d9bf63eadb55bb7679a4 100644
--- a/include/staff/templates/queue-navigation.tmpl.php
+++ b/include/staff/templates/queue-navigation.tmpl.php
@@ -15,6 +15,9 @@ $selected = (!isset($_REQUEST['a'])  && $_REQUEST['queue'] == $this_queue->getId
   <div class="customQ-dropdown">
     <ul class="scroll-height">
       <!-- Add top-level queue (with count) -->
+
+      <?php
+      if (!$children) { ?>
       <li class="top-level">
         <span class="pull-right newItemQ queue-count"
           data-queue-id="<?php echo $q->id; ?>"><span class="faded-more">-</span>
@@ -25,9 +28,9 @@ $selected = (!isset($_REQUEST['a'])  && $_REQUEST['queue'] == $this_queue->getId
         <?php
           echo Format::htmlchars($q->getName()); ?>
         </a>
-        </h4>
       </li>
-
+      <?php
+      } ?>
       <!-- Start Dropdown and child queues -->
       <?php foreach ($childs as $_) {
           list($q, $children) = $_;
diff --git a/scp/queues.php b/scp/queues.php
index f02f4efc8a5c3faa6d047d57d9962fa5fd0e86db..997fefa2678cae361a9654c6efecfaccf0199fe9 100644
--- a/scp/queues.php
+++ b/scp/queues.php
@@ -44,7 +44,7 @@ if ($_POST) {
         $queue = CustomQueue::create(array(
             'staff_id' => 0,
             'title' => $_POST['queue-name'],
-            'root' => $_POST['root'] ?: 'T'
+            'root' => 'T'
         ));
 
         if ($queue->update($_POST, $errors) && $queue->save(true)) {