diff --git a/include/staff/footer.inc.php b/include/staff/footer.inc.php
index 741a98066e0bc87befca2a9b48462a57ebb01fd7..94de13f1a940812525c0c84826aa9d823b5f9cc3 100644
--- a/include/staff/footer.inc.php
+++ b/include/staff/footer.inc.php
@@ -43,8 +43,8 @@ if(is_object($thisstaff) && $thisstaff->isStaff()) { ?>
 
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery.pjax.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/bootstrap-typeahead.js"></script>
-<script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/scp.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-1.12.1.custom.min.js"></script>
+<script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/scp.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/filedrop.field.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/select2.min.js"></script>
 <script type="text/javascript" src="<?php echo ROOT_PATH; ?>scp/js/tips.js"></script>
diff --git a/include/staff/templates/queue-column.tmpl.php b/include/staff/templates/queue-column.tmpl.php
index 3ca9d9a310268851e76d061b1b88d8fadbee2c33..279ecc12739b3221b89adeb57dbe680b7859f967 100644
--- a/include/staff/templates/queue-column.tmpl.php
+++ b/include/staff/templates/queue-column.tmpl.php
@@ -72,7 +72,8 @@ foreach (Internationalization::sortKeyedList($annotations) as $class=>$desc) {
       $(function() {
         var addAnnotation = function(type, desc, icon, pos) {
           var template = $('.annotation.template', '#annotations'),
-              clone = template.clone().show().removeClass('template').insertBefore(template),
+              clone = template.clone().removeClass('hidden')
+                  .removeClass('template').insertBefore(template),
               input = clone.find('[data-field=input]'),
               colid = clone.closest('.tab_content').data('colId'),
               column = clone.find('[data-field=column]'),
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 073e675eb992e7858f68dbb2c0160f6b96b1a536..78574c233b83061fe96db31a51a63f96678cad69 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -1301,49 +1301,25 @@ window.relativeAdjust = setInterval(function() {
 
 // Add 'afterShow' event to jQuery elements,
 // thanks http://stackoverflow.com/a/1225238/1025836
-(function ($) {
+jQuery(function($) {
     var _oldShow = $.fn.show;
 
-    $.fn.show = function (/*speed, easing, callback*/) {
+    // This should work with jQuery 3 with or without jQuery UI
+    $.fn.show = function() {
         var argsArray = Array.prototype.slice.call(arguments),
-            duration = argsArray[0],
-            easing,
-            callback,
-            callbackArgIndex;
-
-        // jQuery recursively calls show sometimes; we shouldn't
-        //  handle such situations. Pass it to original show method.
-        if (!this.selector) {
-            _oldShow.apply(this, argsArray);
-            return this;
-        }
-
-        if (argsArray.length === 2) {
-            if ($.isFunction(argsArray[1])) {
-                callback = argsArray[1];
-                callbackArgIndex = 1;
-            } else {
-                easing = argsArray[1];
-            }
-        } else if (argsArray.length === 3) {
-            easing = argsArray[1];
-            callback = argsArray[2];
-            callbackArgIndex = 2;
-        }
-        return $(this).each(function () {
-            var obj = $(this),
-                oldCallback = callback,
-                newCallback = function () {
-                    if ($.isFunction(oldCallback)) {
-                        oldCallback.apply(obj);
-                    }
-                };
-            if (callback) {
-                argsArray[callbackArgIndex] = newCallback;
-            }
-            obj.trigger('beforeShow');
-            _oldShow.apply(obj, argsArray);
-            obj.trigger('afterShow');
+            arg = argsArray[0],
+            options = {};
+        if (typeof(arg) === 'number')
+            options.duration = arg;
+        else
+            options.effect = arg;
+        return this.each(function () {
+            var obj = $(this);
+            _oldShow.call(obj, $.extend(options, {
+                complete: function() {
+                    obj.trigger('afterShow');
+                }
+            }));
         });
-    };
-})(jQuery);
+    }
+});