Index: includes/FeedsImporter.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/includes/FeedsImporter.inc,v
retrieving revision 1.18
diff -u -p -r1.18 FeedsImporter.inc
--- includes/FeedsImporter.inc	30 Mar 2010 20:06:36 -0000	1.18
+++ includes/FeedsImporter.inc	12 Jun 2010 17:09:12 -0000
@@ -134,10 +134,12 @@ class FeedsImporter extends FeedsConfigu
     $save = new stdClass();
     $save->id = $this->id;
     $save->config = $this->getConfig();
-    // Make sure a source record is present at all time, try to update first,
-    // then insert.
-    drupal_write_record('feeds_importer', $save, 'id');
-    if (!db_affected_rows()) {
+    // Make sure an importer record is present at all time. If it already
+    // exists, then update else insert.
+    if (db_result(db_query_range("SELECT 1 FROM {feeds_importer} WHERE id = '%s'", $this->id, 0, 1))) {
+      drupal_write_record('feeds_importer', $save, 'id');  
+    }
+    else {
       drupal_write_record('feeds_importer', $save);
     }
     // Clear menu cache, changes to importer can change menu items.
Index: includes/FeedsScheduler.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/includes/FeedsScheduler.inc,v
retrieving revision 1.19
diff -u -p -r1.19 FeedsScheduler.inc
--- includes/FeedsScheduler.inc	28 Apr 2010 16:16:53 -0000	1.19
+++ includes/FeedsScheduler.inc	12 Jun 2010 17:09:12 -0000
@@ -137,8 +137,10 @@ class FeedsScheduler implements FeedsSch
       'last_executed_time' => 0,
       'scheduled' => 0, // Means NOT scheduled at the moment.
     );
-    drupal_write_record('feeds_schedule', $save, array('id', 'callback', 'feed_nid'));
-    if (!db_affected_rows()) {
+    if (db_result(db_query_range("SELECT 1 FROM {feeds_schedule} WHERE id = '%s' AND callback = '%s' AND feed_nid = %d", $importer_id, $callback, $feed_nid, 0, 1))) {
+      drupal_write_record('feeds_schedule', $save, array('id', 'callback', 'feed_nid'));
+    }
+    else {
       drupal_write_record('feeds_schedule', $save);
     }
   }
Index: includes/FeedsSource.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/includes/FeedsSource.inc,v
retrieving revision 1.12
diff -u -p -r1.12 FeedsSource.inc
--- includes/FeedsSource.inc	30 Mar 2010 20:06:36 -0000	1.12
+++ includes/FeedsSource.inc	12 Jun 2010 17:09:12 -0000
@@ -197,10 +197,12 @@ class FeedsSource extends FeedsConfigura
       'source' => $source,
       'batch' => isset($this->batch) ? $this->batch : FALSE,
     );
-    // Make sure a source record is present at all time, try to update first,
-    // then insert.
-    drupal_write_record('feeds_source', $object, array('id', 'feed_nid'));
-    if (!db_affected_rows()) {
+    // Make sure a source record is present at all time. If it already exists,
+    // then update else insert.
+    if (db_result(db_query_range("SELECT 1 FROM {feeds_source} WHERE id = '%s' AND feed_nid = %d", $this->id, $this->feed_nid, 0, 1))) {
+      drupal_write_record('feeds_source', $object, array('id', 'feed_nid'));  
+    }
+    else {
       drupal_write_record('feeds_source', $object);
     }
   }
