Index: plugins/FeedsParser.inc =================================================================== --- plugins/FeedsParser.inc (revision 29) +++ plugins/FeedsParser.inc (working copy) @@ -131,7 +131,7 @@ return $node->uid; } $item = $result->currentItem(); - return isset($item[$element_key]) ? $item[$element_key] : ''; + return isset($item[$element_key]) ? $item[$element_key] : NULL; } } Index: plugins/FeedsProcessor.inc =================================================================== --- plugins/FeedsProcessor.inc (revision 29) +++ plugins/FeedsProcessor.inc (working copy) @@ -391,17 +391,19 @@ $value = $parser->getSourceElement($source, $result, $mapping['source']); } - // Map the source element's value to the target. - if (isset($targets[$this->id][$mapping['target']]) && - 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($source, $target_item, $mapping['target'], $value); + if (isset($value)) { // only if a column was present in the feed + // Map the source element's value to the target. + if (isset($targets[$this->id][$mapping['target']]) && + 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($source, $target_item, $mapping['target'], $value); + } + else { + $this->setTargetElement($source, $target_item, $mapping['target'], $value); + } } - else { - $this->setTargetElement($source, $target_item, $mapping['target'], $value); - } } return $target_item; }