diff --git a/include/staff/footer.inc.php b/include/staff/footer.inc.php
index 9055fa1da0dbe295b2603d9f6d22aadf139e5f78..8a6fc6852f1444cdc4e3a772c032917ab827c2d7 100644
--- a/include/staff/footer.inc.php
+++ b/include/staff/footer.inc.php
@@ -19,7 +19,11 @@ if(is_object($thisstaff) && $thisstaff->isStaff()) { ?>
     <i class="icon-spinner icon-spin icon-3x pull-left icon-light"></i>
     <h1><?php echo __('Loading ...');?></h1>
 </div>
-<div class="dialog" style="display:none;width:650px;" id="popup">
+<div class="dialog draggable" style="display:none;width:650px;" id="popup">
+    <div id="popup-loading">
+        <h1 style="margin-bottom: 20px;"><i class="icon-spinner icon-spin icon-large"></i>
+        <?php echo __('Loading ...');?></h1>
+    </div>
     <div class="body"></div>
 </div>
 <div style="display:none;" class="dialog" id="alert">
diff --git a/scp/js/scp.js b/scp/js/scp.js
index 47ce3b19232f6c1034a47bd458e9d36164cf78d3..b930f58637621d84cc4d2c8f85850d73d81d3385 100644
--- a/scp/js/scp.js
+++ b/scp/js/scp.js
@@ -530,12 +530,19 @@ $.dialog = function (url, codes, cb, options) {
     if (codes && !$.isArray(codes))
         codes = [codes];
 
-    $('.dialog#popup .body').load(url, function () {
-        $('#overlay').show();
-        $('.dialog#popup').show({
+    var $popup = $('.dialog#popup');
+
+    $('#overlay').show();
+    $('div.body', $popup).empty().hide();
+    $('div#popup-loading', $popup).show();
+    $popup.show();
+    $('div.body', $popup).load(url, function () {
+        $('div#popup-loading', $popup).hide();
+        $('div.body', $popup).show({
             duration: 0,
             complete: function() { if (options.onshow) options.onshow(); }
         });
+        $popup.show();
         $(document).off('.dialog');
         $(document).on('submit.dialog', '.dialog#popup form', function(e) {
             e.preventDefault();