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 9ca601e33020d9c0f3ea1e669bbc4d405217df5e..def1436d36c6a19fd29d02468f3a65c9891566d3 100644
--- a/include/ajax.forms.php
+++ b/include/ajax.forms.php
@@ -149,6 +149,8 @@ class DynamicFormsAjaxAPI extends AjaxController {
     function saveListItem($list_id, $item_id) {
         global $thisstaff;
 
+        $errors = array();
+
         if (!$thisstaff)
             Http::response(403, 'Login required');
 
@@ -177,7 +179,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 17799f2121a323170cf8d0f953567f039657db24..678e4a4f6c6157ac853d2335894bc60c3a1110ef 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -364,7 +364,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 4579deb8d34ca38484835ec6bb33d178721ddbda..a31d813a07355c09548cb1f4e8afb3c07c393d4d 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 3bb89c5047479fd39b656b620f19fa5e5844461b..287e45be7fd4b2985b4e863c2e94be4597b5458c 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -1116,15 +1116,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();
@@ -1197,8 +1198,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;
 });