diff --git a/dreditor.user.js b/dreditor.user.js
index 631d996..a3534ec 100644
--- a/dreditor.user.js
+++ b/dreditor.user.js
@@ -1360,6 +1360,77 @@ Drupal.behaviors.dreditorIssueSummary = function (context) {
 };
 
 /**
+ * Adds a button to insert the issue summary template.
+ */
+Drupal.behaviors.dreditorIssueSummaryTemplate = function (context) {
+
+  // Add the template button above the issue summary field.
+  $('body.logged-in.page-node div.project-issue #edit-body').once('dreditorIssueTemplate', function () {
+    // We want to append the button in the label area.
+    var $label = $('label[for="edit-body"]');
+
+    // Create a button to insert the template.
+    var $action = $('<a>')
+      .attr('href', '#')
+      .appendTo($label)
+      .text('Insert template')
+      .attr('class', 'dreditor-button')
+      .click(function () {
+
+        // Load the issue summary instructions.
+        $.get('http://drupal.org/node/1326662', function (data) {
+
+          // If we are on a node add page, use that version of the template.
+          if (location.pathname.search('node/add') >= 0) {
+            var $templateText = $(data).find('div#node-add-template').text();
+          }
+
+          // Otherwise, use the template for the node edit form.
+          else {
+            var $templateText = $(data).find('div#node-edit-template').text();
+
+            // Replace [username] with a link to the original poster's profile.
+            // To find the original poster, try to find a path to the node
+            // from the URL.
+            var nodePath = location.href.match(/^.*node\/[0-9]*/);
+
+            // Only proceed if a valid node path was found.
+            if (nodePath) {
+              // Load the issue's view page.
+              $.get(nodePath[0], function (data) {
+                // Find the link to the original poster's profile.
+                var $profileLink = $(data).find('div.node > div.submitted a');
+
+                // Assemble and insert markup for a profile link.
+                var profileLinkMarkup = '<a href="' + link.attr('href') + '">' + $profileLink.html() + '</a>';
+                $templateText = $templateText.replace(/\[username\]/, profileLinkMarkup);
+              });
+            }
+          }
+
+          $templateText = $templateText.replace(/<\/h3>/g, "</h3>\n\n");
+
+          // Prepend text to current body.
+          $('#edit-body').val($templateText + $('#edit-body').val());
+        });
+
+        // Take no action other than executing the .click() behavior.
+        return false;
+      }
+    );
+
+    // Add spacing around the button.
+    $action.wrap('<span>&nbsp;&nbsp;</span>');
+
+    // Add a link to view the issue summary instructions.
+    var $instructions = $('<a href="http://drupal.org/node/1155816" target="_blank">Issue summary standards</a>')
+    .appendTo($label);
+    $instructions.before('(');
+    $instructions.after(')');
+  });
+};
+
+/**
  * Streamline issue comment form.
  *
  * Altering of the form makes certain browsers (such as Firefox) no longer find
