diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index 8246670fb05e453860e1a84426c4fb8e8a49cde5..5f273a84dcf16fbc42884d2229b7c0a801e0aa7b 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -23,6 +23,6 @@ For more information on how to write a good [bug report](https://github.com/osTi
 
 ### Versions
 
-Admin panel -> Dashboard -> Information which also additionally gives you information about you server.
+Admin panel -> Dashboard -> Information which also additionally gives you information about your server.
 
 Also, please include the OS and what version of the OS you're running. As well as your browser and browser version.
diff --git a/include/ajax.forms.php b/include/ajax.forms.php
index fddaec16b2711f7e14c720f1ceafdbe1c8a33d4d..3217124435bbe624bd297b85738cc67b395ec717 100644
--- a/include/ajax.forms.php
+++ b/include/ajax.forms.php
@@ -151,6 +151,8 @@ class DynamicFormsAjaxAPI extends AjaxController {
     function saveListItem($list_id, $item_id) {
         global $thisstaff;
 
+        $errors = array();
+
         if (!$thisstaff)
             Http::response(403, 'Login required');
 
@@ -179,7 +181,7 @@ class DynamicFormsAjaxAPI extends AjaxController {
                     'name' =>   $basic['name'],
                     'value' =>  $basic['value'],
                     'abbrev' =>  $basic['extra'],
-                ]);
+                ], $errors);
             }
         }
 
diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index c92789dbb1425b105e93cc368afb90edbcf8e540..2a176b9b8c7699010639d54d6dadadb19af36488 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -358,7 +358,7 @@ class TicketsAjaxAPI extends AjaxController {
             $format.='.plain';
 
         $varReplacer = function (&$var) use($ticket) {
-            return $ticket->replaceVars($var);
+            return $ticket->replaceVars($var, array('recipient' => $ticket->getOwner()));
         };
 
         include_once(INCLUDE_DIR.'class.canned.php');
diff --git a/include/client/knowledgebase.inc.php b/include/client/knowledgebase.inc.php
index ac4a82f6941f7263b97bef48974865457fbf9fe1..c3895e1629bec11670cd594f1bc40b913633a073 100644
--- a/include/client/knowledgebase.inc.php
+++ b/include/client/knowledgebase.inc.php
@@ -18,12 +18,14 @@ if($_REQUEST['q'] || $_REQUEST['cid'] || $_REQUEST['topicId']) { //Search
         $faqs->filter(array('topics__topic_id'=>$_REQUEST['topicId']));
 
     if ($_REQUEST['q'])
-        $faqs->filter(Q::ANY(array(
-            'question__contains'=>$_REQUEST['q'],
-            'answer__contains'=>$_REQUEST['q'],
-            'keywords__contains'=>$_REQUEST['q'],
-            'category__name__contains'=>$_REQUEST['q'],
-            'category__description__contains'=>$_REQUEST['q'],
+        $faqs->filter(Q::all(array(
+            Q::ANY(array(
+                'question__contains'=>$_REQUEST['q'],
+                'answer__contains'=>$_REQUEST['q'],
+                'keywords__contains'=>$_REQUEST['q'],
+                'category__name__contains'=>$_REQUEST['q'],
+                'category__description__contains'=>$_REQUEST['q'],
+            ))
         )));
 
     include CLIENTINC_DIR . 'kb-search.inc.php';
diff --git a/include/staff/faq.inc.php b/include/staff/faq.inc.php
index 830dc4645516ae229816e3a22c455369c3b02e95..80bf2241552ee6b9ae43ff931e63184f869bcd58 100644
--- a/include/staff/faq.inc.php
+++ b/include/staff/faq.inc.php
@@ -4,7 +4,7 @@ if (!defined('OSTSCPINC') || !$thisstaff
     die('Access Denied');
 
 $info = $qs = array();
-if($faq){
+if($faq && $faq->getId()){
     $title=__('Update FAQ').': '.$faq->getQuestion();
     $action='update';
     $submit_text=__('Save Changes');
diff --git a/include/upgrader/prereq.inc.php b/include/upgrader/prereq.inc.php
index 8d48052c1f5fbea432de48105fc5c26f6d7bee76..6925e35105610d11e414e45f27a39fd9bfc7f318 100644
--- a/include/upgrader/prereq.inc.php
+++ b/include/upgrader/prereq.inc.php
@@ -39,7 +39,7 @@ if(!defined('OSTSCPINC') || !$thisstaff || !$thisstaff->isAdmin()) die('Access D
     <div class="sidebar pull-right">
             <h3><?php echo __('Upgrade Tips');?></h3>
             <p>1. <?php echo __('Remember to back up your osTicket database');?></p>
-            <p>2. <?php echo sprintf(__('Refer to %1$s Upgrade Guide %2$s for the latest tips'), '<a href="http://osticket.com/wiki/Upgrade_and_Migration" target="_blank">', '</a>');?></p>
+            <p>2. <?php echo sprintf(__('Refer to %1$s Upgrade Guide %2$s for the latest tips'), '<a href="https://docs.osticket.com/en/latest/Getting%20Started/Upgrade%20and%20Migration.html" target="_blank">', '</a>');?></p>
             <p>3. <?php echo __('If you experience any problems, you can always restore your files/database backup.');?></p>
             <p>4. <?php echo sprintf(__('We can help. Feel free to %1$s contact us %2$s for professional help.'), '<a href="http://osticket.com/support/" target="_blank">', '</a>');?></p>
 
diff --git a/scp/faq.php b/scp/faq.php
index 8b948c1421ff0b51e044410ce3f9d8ba0b296cb5..164de2393c182466412e3d8c0b8f805c3b3d5213 100644
--- a/scp/faq.php
+++ b/scp/faq.php
@@ -143,7 +143,7 @@ if ($_POST) {
 }
 
 $inc='faq-categories.inc.php'; //FAQs landing page.
-if($faq) {
+if($faq && $faq->getId()) {
     $inc='faq-view.inc.php';
     if ($_REQUEST['a']=='edit'
             && $thisstaff->hasPerm(FAQ::PERM_MANAGE))
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 5a79f043419c1312f7fc29f5984c07d90c5c399f..7c0ac3b7336f927ead07c0d5f59b184ea48137f5 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -1167,15 +1167,16 @@ $(document).on('change', 'select[data-quick-add]', function() {
 });
 
 // Quick note interface
-$(document).on('click.note', '.quicknote .action.edit-note', function() {
+$(document).on('click.note', '.quicknote .action.edit-note', function(e) {
+    // Prevent Auto-Scroll to top of page
+    e.preventDefault();
     var note = $(this).closest('.quicknote'),
         body = note.find('.body'),
         T = $('<textarea>').text(body.html());
     if (note.closest('.dialog, .tip_box').length)
         T.addClass('no-bar small');
     body.replaceWith(T);
-    $.redact(T);
-    $(T).redactor('focus.setStart');
+    $.redact(T, { focusEnd: true });
     note.find('.action.edit-note').hide();
     note.find('.action.save-note').show();
     note.find('.action.cancel-edit').show();
@@ -1248,8 +1249,7 @@ $(document).on('click', '#new-note', function() {
     note.replaceWith(T);
     $('<p>').addClass('submit').css('text-align', 'center')
         .append(button).appendTo(T.parent());
-    $.redact(T);
-    $(T).redactor('focus.setStart');
+    $.redact(T, { focusEnd: true });
     return false;
 });