diff --git a/includes/common.inc b/includes/common.inc
index c6303ef..c6ac21a 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -5354,14 +5354,51 @@ function drupal_cron_run() {
     watchdog('cron', 'Attempting to re-run cron while it is already running.', array(), WATCHDOG_WARNING);
   }
   else {
+    $queue_name_previous = '';
+
     // Make sure every queue exists. There is no harm in trying to recreate an
     // existing queue.
     foreach ($queues as $queue_name => $info) {
+      if (!$queue_name_previous) {
+        watchdog('cron', 'Starting execution of queue @queue_name.', array('@queue_name' => $queue_name), WATCHDOG_NOTICE);
+      }
+      else {
+        watchdog('cron', 'Starting execution of queue @queue_name, execution of queue @queue_name_previous took @time.', array(
+          '@module' => $queue_name,
+          '@queue_name_previous' => $queue_name_previous,
+          '@time' => timer_read('cron_queue_' . $queue_name_previous) . 'ms',
+        ), WATCHDOG_NOTICE);
+      }
+      timer_start('cron_queue_' . $queue_name);
+
       DrupalQueue::get($queue_name)->createQueue();
+
+      timer_stop('cron_queue_' . $queue_name);
+      $queue_name_previous = $queue_name;
+    }
+    if ($queue_name_previous) {
+      watchdog('cron', 'Execution of queue @queue_name_previous took @time.', array(
+        '@queue_name_previous' => $queue_name_previous,
+        '@time' => timer_read('cron_queue_' . $queue_name_previous) . 'ms',
+      ), WATCHDOG_NOTICE);
     }

+    $module_previous = '';
+
     // Iterate through the modules calling their cron handlers (if any):
     foreach (module_implements('cron') as $module) {
+      if (!$module_previous) {
+        watchdog('cron', 'Starting execution of @module_cron().', array('@module' => $module), WATCHDOG_NOTICE);
+      }
+      else {
+        watchdog('cron', 'Starting execution of @module_cron(), execution of @module_previous_cron() took @time.', array(
+          '@module' => $module,
+          '@module_previous' => $module_previous,
+          '@time' => timer_read('cron_' . $module_previous) . 'ms',
+          ), WATCHDOG_NOTICE);
+      }
+      timer_start('cron_' . $module);
+
       // Do not let an exception thrown by one module disturb another.
       try {
         module_invoke($module, 'cron');
@@ -5369,6 +5406,15 @@ function drupal_cron_run() {
       catch (Exception $e) {
         watchdog_exception('cron', $e);
       }
+
+      timer_stop('cron_' . $module);
+      $module_previous = $module;
+    }
+    if ($module_previous) {
+      watchdog('cron', 'Execution of @module_previous_cron() took @time.', array(
+        '@module_previous' => $module_previous,
+        '@time' => timer_read('cron_' . $module_previous) . 'ms',
+      ), WATCHDOG_NOTICE);
     }

     // Record cron time.
