diff --git a/js/redactor-osticket.js b/js/redactor-osticket.js
index da4b1c203277c2c696520f1a60d870c6138636e8..a8179641221390ac20240e445bb97e207affff7c 100644
--- a/js/redactor-osticket.js
+++ b/js/redactor-osticket.js
@@ -291,7 +291,7 @@ $(function() {
         var reset = $('input[type=reset]', el.closest('form'));
         if (reset) {
             reset.click(function() {
-                var file = $('.file');
+                var file = $('.file', el.closest('form'));
                 if (file)
                     file.remove();
                 if (el.attr('data-draft-id'))
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 82372a9f9ca1f64d76a06f2a16a5867b14044124..40e8e06330411e513f78e16ddeabdf5e440d8ac3 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -194,6 +194,11 @@ var scp_prep = function() {
      });
 
     $('form select#cannedResp').select2({width: '300px'});
+    $('form select#cannedResp').on('select2:opening', function (e) {
+        var redactor = $('.richtext', e.target.closest('form')).data('redactor');
+        if (redactor)
+            redactor.selection.save();
+    });
 
     $('form select#cannedResp').change(function() {
 
@@ -216,9 +221,10 @@ var scp_prep = function() {
                     var box = $('#response',fObj),
                         redactor = box.data('redactor');
                     if(canned.response) {
-                        if (redactor)
+                        if (redactor) {
+                            redactor.selection.restore();
                             redactor.insert.html(canned.response);
-                        else
+                        } else
                             box.val(box.val() + canned.response);
 
                         if (redactor)