diff --git a/versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc b/versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc
index d9497e3..cff8380 100644
--- a/versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc
+++ b/versioncontrol_project_issue/versioncontrol_project_issue_git/includes/VersioncontrolEventProcessorGitOperationBase.inc
@@ -83,6 +83,10 @@ abstract class VersioncontrolEventProcessorGitOperationBase implements Versionco
       if ($possible_issue->field_project[LANGUAGE_NONE][0]['target_id'] != $this->repository->project_nid) {
         continue;
       }
+      // Do not make any comment on closed issues.
+      if ($possible_issue->field_issue_status[LANGUAGE_NONE][0]['value'] == PROJECT_ISSUE_STATE_CLOSED) {
+        continue;
+      }
       $valid_nids[] = $possible_issue->nid;
     }
     return $valid_nids;
diff --git a/versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitCommitsComment.inc b/versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitCommitsComment.inc
index 0a6ca43..b162322 100644
--- a/versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitCommitsComment.inc
+++ b/versioncontrol_project_issue/versioncontrol_project_issue_git/plugins/event_processor/VersioncontrolEventProcessorGitCommitsComment.inc
@@ -54,6 +54,9 @@ class VersioncontrolEventProcessorGitCommitsComment extends VersioncontrolEventP
           // Group by node, since we could receive multiple commits in the same
           // event.
           foreach (node_load_multiple($valid_issue_nids) as $node) {
+            // Override labels from operations to exclude not updated label in
+            // this push.
+            $this->filterRelevantOperationLabelNames($operation, $event);
             $comment = theme('versioncontrol_project_issue_git_operation_comment_item', array('operation' => $operation));
             $replies_per_nid[$node->nid]['operation_comments'][] = $comment;
           }
@@ -79,4 +82,33 @@ class VersioncontrolEventProcessorGitCommitsComment extends VersioncontrolEventP
       node_save($node);
     }
   }
+
+  protected function filterRelevantOperationLabelNames(VersioncontrolOperation &$operation, VersioncontrolGitEvent $event) {
+    $event_label_names = $this->getRelevantEventLabelNames($event);
+    $relevant_label_names = array();
+    foreach ($operation->labels as $key => $label) {
+      if (!in_array($label->name, $event_label_names)) {
+        unset($operation->labels[$key]);
+      }
+    }
+  }
+
+  protected function getRelevantEventLabelNames(VersioncontrolGitEvent $event) {
+    static $event_label_names;
+    if (isset($event_label_names)) {
+      return $event_label_names;
+    }
+    $event_label_names = array();
+    foreach ($event as $ref) {
+      // @todo This assumes non-repeating label names between different types
+      // of labels, which is not really true, but we are only supporting
+      // branches, so it is ok for now.
+      if ($ref->reftype != VERSIONCONTROL_GIT_REFTYPE_BRANCH) {
+        // Only process branch refs for now.
+        return;
+      }
+      $event_label_names[] = $ref->refname;
+    }
+    return $event_label_names;
+  }
 }
