diff --git a/vars/jenkinsNotify.groovy b/vars/jenkinsNotify.groovy
index 8fd5d0d..1f695cd 100644
--- a/vars/jenkinsNotify.groovy
+++ b/vars/jenkinsNotify.groovy
@@ -65,23 +65,23 @@
     // comment on any jira tickets
     def jiraIssues = null
     def jiraMavens = []
-//    try {
-//        jiraIssues = jiraIssueSelector(issueSelector: [$class: 'DefaultIssueSelector'])
-//        for (def jiraIssue in jiraIssues) {
-//            // only comment on maven's issues, all our trackers start with M
-//            // may end up commenting on other TLPs in some cases but should be very rare
-//            if (jiraIssue.startsWith("M")) {
-//                try {
-//                    jiraComment body: "${messageSubject}\n\n${messageBody}", issueKey: jiraIssue
-//                } catch (e) {
-//                    echo "WARNING: Could not update ${jiraIssue}: ${e.message}"
-//                }
-//                jiraMavens += jiraIssue
-//            }
-//        }
-//    } catch (e) {
-//        echo "WARNING: Could not determine JIRA issues: ${e.message}"
-//    }
+    try {
+        jiraIssues = jiraIssueSelector(issueSelector: [$class: 'DefaultIssueSelector'])
+        for (def jiraIssue in jiraIssues) {
+            // only comment on maven's issues, all our trackers start with M
+            // may end up commenting on other TLPs in some cases but should be very rare
+            if (jiraIssue.startsWith("M")) {
+                try {
+                    jiraComment body: "${messageSubject}\n\n${messageBody}", issueKey: jiraIssue
+                } catch (e) {
+                    echo "WARNING: Could not update ${jiraIssue}: ${e.message}"
+                }
+                jiraMavens += jiraIssue
+            }
+        }
+    } catch (e) {
+        echo "WARNING: Could not determine JIRA issues: ${e.message}"
+    }
     // set the build description to the jira ticket id's
     if (!jiraMavens.empty) {
         currentBuild.description = "${jiraMavens.join(', ')}"
