diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 1ba254b7637024eb5da3172e8c4f2550fbe1d8a6..a7307ef7088dc090e4813a797ce2570f37f6fe64 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -3,6 +3,7 @@
 Feeds 6.x 1.0 xxxxxxxxxxxxxxxxxxxx
 ----------------------------------
 
+- #755544 Monkey Master: Keep batch processing when mapping fails.
 - alex_b: Reset import schedule after deleting items from feed.
 - #653412 rbrandon: Do not create items older than expiry time.
 - #725392 nicholasThompson: FeedsBatch does not check feeds folder exists before
diff --git a/plugins/FeedsNodeProcessor.inc b/plugins/FeedsNodeProcessor.inc
index 0ef4778be6baf1f0758c085da81e58fa547e7a5f..c06f8830bb561d2743d639605ffc671b6539bdb4 100644
--- a/plugins/FeedsNodeProcessor.inc
+++ b/plugins/FeedsNodeProcessor.inc
@@ -41,10 +41,6 @@ class FeedsNodeProcessor extends FeedsProcessor {
           // If updating populate nid and vid avoiding an expensive node_load().
           $node->nid = $nid;
           $node->vid = db_result(db_query("SELECT vid FROM {node} WHERE nid = %d", $nid));
-          $batch->updated++;
-        }
-        else {
-          $batch->created++;
         }
 
         // Populate and prepare node object.
@@ -66,11 +62,21 @@ class FeedsNodeProcessor extends FeedsProcessor {
         $node->log = 'Created/updated by FeedsNodeProcessor';
         $node->uid = 0;
 
-        // Execute mappings from $item to $node.
-        $this->map($item, $node);
-
-        // Save the node.
-        node_save($node);
+        // Map and save nodes. If errors occur don't stop but report them.
+        try {
+          $this->map($item, $node);
+          node_save($node);
+          if (!empty($nid)) {
+            $batch->updated++;
+          }
+          else {
+            $batch->created++;
+          }
+        }
+        catch (Exception $e) {
+          drupal_set_message($e->getMessage(), 'warning');
+          watchdog('feeds', $e->getMessage(), array(), WATCHDOG_WARNING);
+        }
       }
 
       $processed++;