? 753426-30_update_existing.patch
? 840626-1_support_multiple.patch
? libraries/simplepie.inc
Index: mappers/content.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/mappers/content.inc,v
retrieving revision 1.5
diff -u -p -r1.5 content.inc
--- mappers/content.inc	16 May 2010 21:15:53 -0000	1.5
+++ mappers/content.inc	29 Jun 2010 16:10:55 -0000
@@ -37,9 +37,8 @@ function content_feeds_node_processor_ta
  * user has decided to map to and $value contains the value of the feed item
  * element the user has picked as a source.
  */
-function content_feeds_set_target($node, $target, $value) {
-
-  $field = isset($node->$target) ? $node->$target : array();
+function content_feeds_set_target($node, $target, $value, $reset = FALSE) {
+  $field = ($reset || !is_array($node->$target)) ? array() : $node->$target;
 
   // Handle multiple value fields.
   if (is_array($value)) {
Index: plugins/FeedsProcessor.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/plugins/FeedsProcessor.inc,v
retrieving revision 1.11
diff -u -p -r1.11 FeedsProcessor.inc
--- plugins/FeedsProcessor.inc	19 Jun 2010 15:57:13 -0000	1.11
+++ plugins/FeedsProcessor.inc	29 Jun 2010 16:10:55 -0000
@@ -104,12 +104,14 @@ abstract class FeedsProcessor extends Fe
     If the mapping specifies a callback method, use the callback instead of
     setTargetElement().
     */
+    $called = array();
     foreach ($this->config['mappings'] as $mapping) {
       $value = $parser->getSourceElement($source_item, $mapping['source']);
 
       if (is_array($targets[$this->id][$mapping['target']]) && isset($targets[$this->id][$mapping['target']]['callback']) && function_exists($targets[$this->id][$mapping['target']]['callback'])) {
         $callback = $targets[$this->id][$mapping['target']]['callback'];
-        $callback($target_item, $mapping['target'], $value);
+        $callback($target_item, $mapping['target'], $value, $called[$callback] ? TRUE : FALSE);
+        $called[$callback] = TRUE;
       }
       else {
         $this->setTargetElement($target_item, $mapping['target'], $value);
