Index: includes/ajax.inc
===================================================================
--- includes/ajax.inc	(revision 504)
+++ includes/ajax.inc	(working copy)
@@ -385,6 +385,23 @@
 }
 
 /**
+ * Force a delayed client-side redirect.
+ *
+ * @param $url
+ *   The url to be redirected to. This can be an absolute URL or a
+ *   Drupal path.
+ * @param $delay
+ *   The delay in milliseconds.
+ */
+function ctools_ajax_command_delayed_redirect($url, $delay) {
+  return array(
+    'command' => 'delayed_redirect',
+    'url' => url($url),
+    'delay' => $delay,
+  );
+}
+
+/**
  * Force a reload of the current page.
  */
 function ctools_ajax_command_reload() {
Index: js/ajax-responder.js
===================================================================
--- js/ajax-responder.js	(revision 504)
+++ js/ajax-responder.js	(working copy)
@@ -314,6 +314,10 @@
   Drupal.CTools.AJAX.commands.redirect = function(data) {
     location.href = data.url;
   };
+  
+  Drupal.CTools.AJAX.commands.delayed_redirect = function(data) {
+    setTimeout(function () { location.href = data.url; }, data.delay);
+  };
 
   Drupal.CTools.AJAX.commands.reload = function(data) {
     location.reload();
