diff --git a/views_save.js b/views_save.js
index 1eb712b..520a543 100644
--- a/views_save.js
+++ b/views_save.js
@@ -21,7 +21,10 @@
 
         $form.hide();
 
-        $('a.views-save-cancel', $form).click(function() {Drupal.CTools.Modal.dismiss(); return false;});
+        $('a.views-save-cancel', $form).click(function () {
+          Drupal.CTools.Modal.dismiss();
+          return false;
+        });
 
         var id = $('.views-save-button-submit', $form).attr('id');
         if (id) {
@@ -45,7 +48,8 @@
         $('#modal-content').empty().append($form);
         $form.show();
 
-        $(document).bind('CToolsDetachBehaviors.views_save', views_save_hide_popup);
+        $(document)
+          .bind('CToolsDetachBehaviors.views_save', views_save_hide_popup);
 
         return false;
       }
@@ -103,13 +107,21 @@
         }
         var $content = $(content);
         var $form = $(this.element).closest('form');
+        $form.find('.views-save-button-submit').removeClass('progress-disabled');
+        $form.find('.views-save-button-submit').prop( "disabled", false );
+        $form.find('.views-save-button-submit').next("div.ajax-progress-throbber").remove();
+        $('.messages--status').remove();
         var $save_button = $('#' + $form.data('save_button'));
         $save_button.hide().after($content);
         Drupal.attachBehaviors($content, settings);
         Drupal.CTools.Modal.dismiss();
+        $(document).trigger('views_save_refresh');
       }
     }
+  };
 
+  Drupal.ajax.prototype.commands.views_save_refresh = function() {
+    $(document).trigger('views_save_refresh');
   };
 
   /**
diff --git a/views_save.module b/views_save.module
index 981fa8e..eb6893b 100644
--- a/views_save.module
+++ b/views_save.module
@@ -47,12 +47,10 @@ function views_save_menu() {
     'type' => MENU_LOCAL_TASK,
     'weight' => 20,
   );
-
   $items['views-save/%views_save'] = array(
     'title' => 'Saved views',
     'access callback' => FALSE,
   );
-
   $items['views-save/%views_save/delete'] = array(
     'title' => 'Delete saved view',
     'page callback' => 'drupal_get_form',
@@ -60,7 +58,13 @@ function views_save_menu() {
     'access callback' => 'views_save_delete_access',
     'access arguments' => array(1),
   );
-
+  $items['views-save/%ctools_js/%views_save/delete'] = array(
+    'title' => 'Delete',
+    'page callback' => 'views_save_ajax_delete_confirm',
+    'page arguments' => array(1, 2),
+    'access callback' => 'views_save_delete_access',
+    'access arguments' => array(2),
+  );
   return $items;
 }
 
@@ -77,7 +81,6 @@ function views_save_url_inbound_alter(&$path) {
         if (!empty($save->view_path['options']['query'])) {
           $_GET = $save->view_path['options']['query'] + $_GET;
         }
-        $_GET['views_save'] = $id;
       }
     }
   }
@@ -1158,3 +1161,49 @@ function views_save_delete_confirm_submit($form, &$form_state) {
   entity_delete('views_save', $form_state['values']['eid']);
   drupal_set_message(t('The saved view has been deleted.'));
 }
+
+function views_save_ajax_delete_confirm($js, $entity) {
+  if (!$js) {
+    drupal_goto('views-save/' . $entity->id . '/delete');
+  }
+
+  ctools_include('modal');
+  ctools_include('ajax');
+
+  $form_state = array(
+    'no_redirect' => TRUE,
+    'build_info' => array(
+      'args' => array(
+        0 => $entity,
+      ),
+    ),
+
+    'ajax' => TRUE,
+  );
+  $delete_form = drupal_build_form('views_save_delete_confirm', $form_state, $entity);
+  $delete_form ['actions']['cancel'] = array(
+    '#markup' => l(t('Cancel'), '#',
+      array(
+        'attributes' => array(
+          'class' => 'ctools-close-modal'
+        ),
+        'external' => TRUE
+      )
+    )
+  );
+  if (!empty($form_state['executed'])) {
+    $output = array();
+    ctools_add_js('ajax-responder');
+    unset($_SESSION['messages']);
+    $output[] = array('command' => 'views_save_refresh');
+    $output[] = ajax_command_remove('.messages.messages--status,.messages.status');
+    $output[] = ajax_command_after('.views-save-button-save', '<div class="messages messages--status"></div>');
+    $output[] = ajax_command_append('.messages.messages--status',
+      t('%title has been deleted.', array('%title' => $entity->title)));
+    $output[] = ctools_modal_command_dismiss();
+    print ajax_render($output);
+    exit;
+  }
+  ctools_modal_render('Popup', $delete_form);
+  exit;
+}
