diff --git a/queue_ui.module b/queue_ui.module
index 6fc8e7a..70352a2 100644
--- a/queue_ui.module
+++ b/queue_ui.module
@@ -28,7 +28,7 @@ function queue_ui_menu() {
     'access arguments' => array('admin queue_ui'),
     'file' => 'queue_ui.pages.inc',
   );
-  
+
   return $items;
 }
 
@@ -50,16 +50,6 @@ function queue_ui_test() {
 }
 
 /**
- * Get the names of queues.
- *
- * @param Array of queue names suitable for DrupalQueue::get();
- */
-function queue_ui_queue_names() {
-  $result = db_query("SELECT DISTINCT name FROM {queue}");
-  return $result->fetchAll();
-}
-
-/**
  * Get queues.
  *
  * @return Array of queues indexed by name and containing queue object and number
@@ -67,12 +57,12 @@ function queue_ui_queue_names() {
  */
 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);
-      $queues[$name->name] = array(
+      $queue = DrupalQueue::get($name);
+      $queues[$name] = array(
         'queue' => $queue,
         'items' => $queue->numberOfItems(),
       );
@@ -82,7 +72,7 @@ function queue_ui_queues() {
 }
 
 /**
- * Get queues defined with hook_queue_info().
+ * Get queues defined with hook_cron_queue_info().
  *
  * @return Array of queues indexed by name and containing
  */
@@ -91,6 +81,18 @@ function queue_ui_defined_queues() {
   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;
 }
@@ -176,4 +178,4 @@ function queue_ui_batch_finished($success, $results, $operations) {
     $message = t('An error occured @todo.');
   }
   drupal_set_message($message);
-}
\ No newline at end of file
+}
