diff --git a/bootstrap.php b/bootstrap.php
index c00e425c35f8278b8f27d7fc1f9edfe01848e071..df723ae7af7c9e2da93e1ae81ca7fcb8b652dbf2 100644
--- a/bootstrap.php
+++ b/bootstrap.php
@@ -207,7 +207,7 @@ class Bootstrap {
         require(INCLUDE_DIR.'class.mailer.php');
         require_once INCLUDE_DIR.'mysqli.php';
         require_once INCLUDE_DIR.'class.i18n.php';
-        require_once INCLUDE_DIR.'class.search.php';
+        require_once INCLUDE_DIR.'class.queue.php';
     }
 
     function i18n_prep() {
diff --git a/include/ajax.search.php b/include/ajax.search.php
index 55dd5aa014083d3453b5cc864351a4ac51b3bbd4..db9fab815ea996725bee2b82b807b454c6c61aae 100644
--- a/include/ajax.search.php
+++ b/include/ajax.search.php
@@ -19,7 +19,6 @@ if(!defined('INCLUDE_DIR')) die('403');
 
 include_once(INCLUDE_DIR.'class.ticket.php');
 require_once(INCLUDE_DIR.'class.ajax.php');
-require_once(INCLUDE_DIR.'class.queue.php');
 
 class SearchAjaxAPI extends AjaxController {
 
diff --git a/include/class.config.php b/include/class.config.php
index 20c09e1dd26d94a713e95bec75ff0e17e17ff6d4..1a37d3e0b563fd621f4a387f551ffd8c52a09adc 100644
--- a/include/class.config.php
+++ b/include/class.config.php
@@ -1241,7 +1241,6 @@ class OsticketConfig extends Config {
         if (!preg_match('`(?!<\\\)#`', $vars['ticket_number_format']))
             $errors['ticket_number_format'] = 'Ticket number format requires at least one hash character (#)';
 
-        require_once INCLUDE_DIR . 'class.queue.php';
         if (!isset($vars['default_ticket_queue']))
             $errors['default_ticket_queue'] = __("Select a default ticket queue");
         elseif (!CustomQueue::lookup($vars['default_ticket_queue']))
diff --git a/include/class.i18n.php b/include/class.i18n.php
index 69814a0a38488ac3f606034631a1760362c821bc..d7aaa71ed98e7a296b0efd09cb7097602b3e3962 100644
--- a/include/class.i18n.php
+++ b/include/class.i18n.php
@@ -66,6 +66,7 @@ class Internationalization {
             'role.yaml' =>          'Role::__create',
             'file.yaml' =>          'AttachmentFile::__create',
             'sequence.yaml' =>      'Sequence::__create',
+            'queue.yaml' =>         'CustomQueue::__create',
         );
 
         $errors = array();
diff --git a/include/class.queue.php b/include/class.queue.php
index 7690a90239e8218790b858f4f4990be1a0063185..51bc6ff66f7e6971e15380a4b069d643b2e6aa22 100644
--- a/include/class.queue.php
+++ b/include/class.queue.php
@@ -290,6 +290,12 @@ class CustomQueue extends SavedSearch {
 
         return $queue;
     }
+
+    static function __create($vars) {
+        $q = static::create($vars);
+        $q->save();
+        return $q;
+    }
 }
 
 abstract class QueueColumnAnnotation {
diff --git a/include/i18n/en_US/config.yaml b/include/i18n/en_US/config.yaml
index c849302f40086e18fa46a4bf47143faedf075622..32783896b5ee0083d2ea481d79a851c787fc0d3a 100644
--- a/include/i18n/en_US/config.yaml
+++ b/include/i18n/en_US/config.yaml
@@ -80,3 +80,4 @@ core:
     log_level: 2
     log_graceperiod: 12
     client_registration: 'public'
+    default_ticket_queue: 1
diff --git a/include/staff/queues-ticket.inc.php b/include/staff/queues-ticket.inc.php
index 6ddb5c598ae47865ab9342547a037f2aa2e1acf4..f051d5b7c0b1364eecf36037eb24aacad4f960ab 100644
--- a/include/staff/queues-ticket.inc.php
+++ b/include/staff/queues-ticket.inc.php
@@ -1,6 +1,3 @@
-<?php
-require_once INCLUDE_DIR . 'class.queue.php';
-?>
 <div>
 <table class="form_table settings_table" width="940" border="0" cellspacing="0" cellpadding="2">
     <thead>
diff --git a/scp/queues.php b/scp/queues.php
index a227238adfeb64826093f9cce4de77104353ed2a..90e8e9bd86d5b000234711ed1bb38d5e584f9020 100644
--- a/scp/queues.php
+++ b/scp/queues.php
@@ -17,8 +17,6 @@
 
 require('admin.inc.php');
 
-require_once INCLUDE_DIR . 'class.queue.php';
-
 $nav->setTabActive('settings', 'settings.php?t='.urlencode($_GET['t']));
 $errors = array();
 
diff --git a/scp/tickets.php b/scp/tickets.php
index 1587110b0d111dd780988da6ef6f69b64894565d..f381c30593ec5a242d07141c9f63eb6dbbcd2e87 100644
--- a/scp/tickets.php
+++ b/scp/tickets.php
@@ -58,7 +58,6 @@ if (!$ticket) {
         $_GET['status'] = $_REQUEST['status'] = $queue_name;
 }
 
-require_once INCLUDE_DIR . 'class.queue.php';
 $queue_id = @$_REQUEST['queue'] ?: $cfg->getDefaultTicketQueueId();
 if ((int) $queue_id) {
     $queue = CustomQueue::lookup($queue_id);