diff --git a/queue_ui.module b/queue_ui.module
index e1f8014..abee958 100644
--- a/queue_ui.module
+++ b/queue_ui.module
@@ -172,18 +172,19 @@ function queue_ui_queue_names() {
 /**
  * Get queues.
  *
- * @return Array of queues indexed by name and containing queue object and number
+ * @return
+ *   Array of queues indexed by name and containing queue object and number
  * of items.
  */
 function queue_ui_queues() {
   $queues = array();
-  $queue_names = queue_ui_queue_names();
+  $queue_names = array_keys(queue_ui_defined_queues());
   if (!empty($queue_names)) {
     // Build array of queues indexed by name with number of items.
     foreach ($queue_names as $name) {
-      $queue = DrupalQueue::get($name->name);
+      $queue = DrupalQueue::get($name);
       $class = get_class($queue);
-      $queues[$class][$name->name] = array(
+      $queues[$class][$name] = array(
         'queue' => $queue,
         'items' => $queue->numberOfItems(),
       );
@@ -193,15 +194,28 @@ function queue_ui_queues() {
 }
 
 /**
- * Get queues defined with hook_queue_info().
+ * Get queues defined with hook_queue_info() or hook_cron_queue_info().
  *
- * @return Array of queues indexed by name and containing
+ * @return
+ *   Array of queues indexed by name.
  */
 function queue_ui_defined_queues() {
   $queues = &drupal_static(__FUNCTION__);
   if (!isset($queues)) {
     // Invoke hook_queue_info().
     $queues = module_invoke_all('queue_info');
+
+    // Merge in queues from modules that implement hook_cron_queue_info().
+    $cron_queues = module_invoke_all('cron_queue_info');
+    drupal_alter('cron_queue_info', $cron_queues);
+    foreach($cron_queues as $name => $queue) {
+      $queues[$name] = array(
+        'cron' => array(
+          'callback' => $queue['worker callback'],
+          'time' => $queue['time'],
+        )
+      );
+    }
   }
   return $queues;
 }
