diff --git a/plugins/FeedsProcessor.inc b/plugins/FeedsProcessor.inc
index aea7df6..2d252b9 100755
--- a/plugins/FeedsProcessor.inc
+++ b/plugins/FeedsProcessor.inc
@@ -758,12 +758,21 @@ abstract class FeedsProcessor extends FeedsPlugin {
    * Include mappings as a change in mappings may have an affect on the item
    * produced.
    *
-   * @return Always returns a hash, even with empty, NULL, FALSE:
-   *  Empty arrays return 40cd750bba9870f18aada2478b24840a
-   *  Empty/NULL/FALSE strings return d41d8cd98f00b204e9800998ecf8427e
+   * @return Always returns a hash, even with empty, NULL, FALSE
    */
   protected function hash($item) {
-    return hash('md5', serialize($item) . serialize($this->config['mappings']));
+    $mapped_item = array();
+    foreach ($this->config['mappings'] as $mapping) {
+      if (isset($item[strtolower($mapping['source'])])) {
+        $mapped_item[$mapping['source']] = $item[strtolower($mapping['source'])];
+      }
+      else {
+        // non-existent sources are sometimes used to trigger updates. Ensure
+        // that hash is changed if mapping settings are changed.
+        $mapped_item[$mapping['source']] = $mapping;
+      }
+    }
+    return hash('md5', serialize($mapped_item));
   }
 
   /**
diff --git a/tests/feeds/users_updated.csv b/tests/feeds/users_updated.csv
new file mode 100644
index 0000000..fb407b0
--- /dev/null
+++ b/tests/feeds/users_updated.csv
@@ -0,0 +1,6 @@
+name,mail,since,password
+Morticia,morticia@example.com,1363959643,mort
+Fester,fester@example.com,1363959643,fest
+Gomez,gomez@example.com,1363959643,gome
+Wednesday,wednesdayexample.com,1363959643,wedn
+Pugsley,pugsley@example,1363959643,pugs
diff --git a/tests/feeds_processor_term.test b/tests/feeds_processor_term.test
index 571222c..9c1e92b 100644
--- a/tests/feeds_processor_term.test
+++ b/tests/feeds_processor_term.test
@@ -79,6 +79,14 @@ class FeedsCSVtoTermsTest extends FeedsWebTestCase {
     $this->importFile('term_import', $this->absolutePath() . '/tests/feeds/users.csv');
     $this->assertText('Updated 5 terms.');
 
+    // Test irrelevant data update
+    $this->setSettings('term_import', 'FeedsTermProcessor', array(
+      'skip_hash_check' => FALSE,
+      'update_existing' => 2,
+    ));
+    $this->importFile('term_import', $this->absolutePath() . '/tests/feeds/users_updated.csv');
+    $this->assertNoText('Updated 5 terms.');
+
     // Add a term manually, delete all terms, this term should still stand.
     $edit = array(
       'name' => 'Cousin Itt',
