diff -r c33a600c0c1c sites/all/modules/contrib/feeds_comment_processor/FeedsCommentProcessor.inc
--- a/sites/all/modules/contrib/feeds_comment_processor/FeedsCommentProcessor.inc	Mon Oct 03 11:57:09 2011 -0400
+++ b/sites/all/modules/contrib/feeds_comment_processor/FeedsCommentProcessor.inc	Mon Oct 03 14:54:19 2011 -0400
@@ -216,7 +216,12 @@
    * Override setTargetElement to operate on a target item that is a comment.
    */
   public function setTargetElement($target_comment, $target_element, $value) {
-    if (in_array($target_element, array('guid'))) {
+    if ($target_element == 'cid') {
+      // Do not ever set cid during mapping. This is so new comments will get a
+      // proper, auto-incremented cid. When updating a comment by cid,
+      // process()/buildComment() will handle setting of the cid.
+    }
+    elseif (in_array($target_element, array('guid'))) {
       $target_comment->feeds_comment_item->$target_element = $value;
     }
     elseif (array_key_exists($target_element, $this->getMappingTargets())) {
@@ -229,6 +234,11 @@
    */
   public function getMappingTargets() {
     $targets = array(
+      'cid' => array(
+        'name' => t('Comment ID'),
+        'description' => t('The cid of the comment to update. Leave blank to insert a new comment.'),
+        'optional_unique' => TRUE,
+      ),
       'pid' => array(
         'name' => t('Parent ID'),
         'description' => t('The cid to which this comment is a reply.'),
@@ -299,9 +309,13 @@
         case 'guid':
           $cid = db_result(db_query("SELECT cid FROM {feeds_comment_item} WHERE feed_nid = %d AND id = '%s' AND guid = '%s'", $source->feed_nid, $source->id, $value));
           break;
+        case 'cid':
+          // Confirm given CID actually exists
+          $cid = db_result(db_query("SELECT cid FROM {comments} WHERE cid = %d", $value));
+          break;
       }
       if ($cid) {
-        // Return with the first nid found.
+        // Return with the first cid found.
         return $cid;
       }
     }
@@ -326,14 +340,18 @@
         $populate = TRUE;
       }
     }
+
+    // In any case (new or updated comment, update exisitng or replace) we will
+    // want the proper feeds_comment_item info to be saved.
+    $comment->feeds_comment_item = new stdClass();
+    $comment->feeds_comment_item->id = $this->id;
+    $comment->feeds_comment_item->imported = FEEDS_REQUEST_TIME;
+    $comment->feeds_comment_item->feed_nid = $feed_nid;
+    $comment->feeds_comment_item->guid = '';
+
     if ($populate) {
       $comment->timestamp = FEEDS_REQUEST_TIME;
       $comment->format = $this->config['input_format'];
-      $comment->feeds_comment_item = new stdClass();
-      $comment->feeds_comment_item->id = $this->id;
-      $comment->feeds_comment_item->imported = FEEDS_REQUEST_TIME;
-      $comment->feeds_comment_item->feed_nid = $feed_nid;
-      $comment->feeds_comment_item->guid = '';
       $comment->uid = $this->config['author'];
       $account = user_load(array('uid' => $comment->uid));
       $comment->name = $account->name;
@@ -341,7 +359,6 @@
       $comment->status = 0;
       $comment->pid = 0;
       $comment->hostname = '127.0.0.1';
-
     }
 
     return $comment;
diff -r c33a600c0c1c sites/all/modules/contrib/feeds_comment_processor/feeds_comment_processor.module
--- a/sites/all/modules/contrib/feeds_comment_processor/feeds_comment_processor.module	Mon Oct 03 11:57:09 2011 -0400
+++ b/sites/all/modules/contrib/feeds_comment_processor/feeds_comment_processor.module	Mon Oct 03 14:54:19 2011 -0400
@@ -37,6 +37,12 @@
       if (isset($comment['feeds_comment_item'])) {
         $comment['feeds_comment_item']->cid = $comment['cid'];
         drupal_write_record('feeds_comment_item', $comment['feeds_comment_item'], 'cid');
+        if (!db_affected_rows()) {
+          // In the case that we are updating a comment that was not originally
+          // imported by Feeds Comment Processor, insert a new entry into the
+          // feeds_comment_item table.
+          drupal_write_record('feeds_comment_item', $comment['feeds_comment_item']);
+        }
       }
       break;
     case 'delete':
