Index: wp-cron.php
===================================================================
--- wp-cron.php	(revision 17936)
+++ wp-cron.php	(working copy)
@@ -53,8 +53,13 @@
 			wp_unschedule_event($timestamp, $hook, $v['args']);
 
  			do_action_ref_array($hook, $v['args']);
+
+ 			if ( $local_time + 300 < time() )
+ 				break 3;
 		}
 	}
 }
 
+delete_transient( 'doing_cron' );
+
 die();
Index: wp-includes/cron.php
===================================================================
--- wp-includes/cron.php	(revision 17936)
+++ wp-includes/cron.php	(working copy)
@@ -210,7 +210,7 @@
 		$flag = 0;
 
 	// don't run if another process is currently running it or more than once every 60 sec.
-	if ( $flag + 60 > $local_time )
+	if ( $flag + 360 > $local_time )
 		return;
 
 	//sanity check
