--- feed_field/feed_field.module	2011-01-17 16:56:08.000000000 +0100
+++ feed_field/feed_field.module	2011-01-26 12:08:50.000000000 +0100
@@ -602,10 +602,12 @@
 function feed_field_cron($clearnid=NULL) {
   $content_types = content_fields();
   if (is_null($clearnid)) {
-    $feeds = db_query("SELECT * FROM {feed_field_settings} ORDER BY nid, delta");
+    $start_nid = variable_get("feed_field_start_nid");
+    $feeds = db_query("SELECT * FROM {feed_field_settings} WHERE nid >= {$start_nid} ORDER BY nid, delta LIMIT 100");
+	$last = db_result(db_query("SELECT max(nid) FROM {feed_field_settings}"));
   }
   else {
-    $feeds = db_query("SELECT * FROM {feed_field_settings} WHERE nid=%d ORDER BY nid, delta", $clearnid);
+    $feeds = db_query("SELECT * FROM {feed_field_settings} WHERE nid=%d ORDER BY nid, delta LIMIT 100", $clearnid);
   }
   $now = time();
   $urls = array();
@@ -625,6 +627,7 @@
         }
       }
       $feed = $node->{$fieldname}[$delta];
+	  dd($node->nid);
       if ($clearnid OR (($now - $node->changed) > $feed['feed_field_freq']) && !empty($feed['feed_field_freq'])) {
         // first we update the feeds...
         _feed_field_refresh_items($settings->id, $field_value);
@@ -637,6 +640,10 @@
     }
     $last_nid = $nid;
   }
+  if (is_null($clearnid)) {
+    if ($last_nid == $last) variable_set("feed_field_start_nid",1);
+    else variable_set("feed_field_start_nid", $last_nid + 1);
+  }
 }
 
 /**
