Index: plugins/FeedsNodeProcessor.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feeds/plugins/FeedsNodeProcessor.inc,v
retrieving revision 1.51.2.2
diff -u -p -r1.51.2.2 FeedsNodeProcessor.inc
--- plugins/FeedsNodeProcessor.inc	25 Oct 2010 22:43:03 -0000	1.51.2.2
+++ plugins/FeedsNodeProcessor.inc	25 Jan 2011 13:20:49 -0000
@@ -42,6 +42,9 @@ class FeedsNodeProcessor extends FeedsPr
         }
 
         $node = $this->buildNode($nid, $source->feed_nid);
+        if ($this->config['taxonomy_override']) {
+          $this->override_taxonomy($node);
+        }
         $node->feeds_node_item->hash = $hash;
 
         // Map and save node. If errors occur don't stop but report them.
@@ -80,6 +83,29 @@ class FeedsNodeProcessor extends FeedsPr
     }
     $batch->setProgress(FEEDS_PROCESSING, FEEDS_BATCH_COMPLETE);
   }
+  
+  /**
+   * Override node taxonomy terms
+   */
+  private function override_taxonomy(&$node) {
+    $mappings = $this->config['mappings'];
+    foreach ($mappings as $mapping) {
+      $target = $mapping['target'];
+      $fname = substr($target,0,8);
+      if ($fname == 'taxonomy') {
+        $vid = str_replace('taxonomy:', '', $target);
+        $tids = array();
+        foreach ($node->taxonomy as $term) {
+          if ($term->vid == $vid) {
+            $tids[] = $term->tid;
+          }
+        }
+        foreach ($tids as $tid) {
+          unset($node->taxonomy[$tid]);
+        }
+      }
+    }
+  }
 
   /**
    * Implementation of FeedsProcessor::clear().
@@ -150,6 +176,7 @@ class FeedsNodeProcessor extends FeedsPr
       'expire' => FEEDS_EXPIRE_NEVER,
       'mappings' => array(),
       'author' => 0,
+      'taxonomy_override' => 0,
     );
   }
 
@@ -205,6 +232,12 @@ class FeedsNodeProcessor extends FeedsPr
       ),
       '#default_value' => $this->config['update_existing'],
     );
+    $form['taxonomy_override'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Override taxonomy'),
+      '#description' => t('Check this box if you want feed terms to override node terms.'),
+      '#default_value' => $this->config['taxonomy_override']
+    );
     return $form;
   }
 
