diff --git a/includes/common.inc b/includes/common.inc
index b6ea297..48390b3 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -5027,7 +5027,29 @@ function drupal_cron_run() {
     drupal_register_shutdown_function('drupal_cron_cleanup');
 
     // Iterate through the modules calling their cron handlers (if any):
-    module_invoke_all('cron');
+    // Check cron debug setting
+    $cron_timer = variable_get('cron_debug', 0);
+    if ($cron_timer) {
+      // Start timer for cron total
+      timer_start('cron');
+      foreach (module_implements('cron') as $module) {
+        watchdog('cron', 'Starting cron for @module', array('@module' => $module), WATCHDOG_NOTICE);
+        $function = $module .'_cron';
+        // Start timer, using module cron function name as id
+        timer_start($function);
+        // Call module cron hook
+        $function();
+        $timer = timer_stop($function);
+        // Get total in seconds
+        $total = round($timer['time']/1000, 2);
+        watchdog('cron', 'Cron time elapsed for @module is @secs seconds.', array('@module' => $module, '@secs' => $total), WATCHDOG_NOTICE);
+      }
+      $cron_timer = timer_stop('cron');
+      $total = round($cron_timer['time']/1000, 2);
+      watchdog('cron', 'Cron time total was @secs seconds.', array('@secs' => $total), WATCHDOG_NOTICE);
+    }else{
+      module_invoke_all('cron');
+    }
 
     // Record cron time
     variable_set('cron_last', REQUEST_TIME);
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc
index 92c534e..f6e3a01 100644
--- a/modules/system/system.admin.inc
+++ b/modules/system/system.admin.inc
@@ -1573,6 +1573,12 @@ function system_cron_settings() {
     '#default_value' => variable_get('cron_safe_threshold', DRUPAL_CRON_DEFAULT_THRESHOLD),
     '#options' => array(0 => t('Never')) + drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'),
   );
+  $form['cron']['cron_debug'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Debug mode'),
+    '#default_value' => variable_get('cron_debug', 0),
+    '#description' => t('Check to log cron run information to watchdog.'),
+  );
 
   return system_settings_form($form, FALSE);
 }
