diff --git a/drupalorg/drupalorg.module b/drupalorg/drupalorg.module
index 90f7b0e..847614a 100644
--- a/drupalorg/drupalorg.module
+++ b/drupalorg/drupalorg.module
@@ -1935,3 +1935,45 @@ function drupalorg_preprocess_content_field(&$v) {
     $v['items'] = array(reset($v['items']));
   }
 }
+
+/**
+ * Implementation of hook_link().
+ *
+ * Adds a 'report spam' link to the action links in nodes and comments. This link
+ * directs to the webmaster queue, passing some values in the URL in order to
+ * pre-populate the issue form in the queue, allowing users to report spam.
+ */
+function drupalorg_link($type, $object, $teaser = FALSE) {
+  if ($type == 'node') {
+    if (node_access('create', 'project_issue')) {
+      $node = $object;
+      $links[] = array(
+        'title' => t('Report spam'),
+        'href' => 'node/add/project-issue/webmasters',
+        'query' => array(
+          'component' => 'Spam',
+          'categories' => 'task',
+          'title' => 'Spam Report',
+          'body' => 'Reporting the following node as spam: ' . url('node/' . $node->nid, array('absolute' => TRUE)),
+        ),
+      );
+      return $links;
+    }
+  }
+  elseif ($type == 'comment') {
+    if (node_access('create', 'project_issue')) {
+      $comment = $object;
+      $links[] = array(
+        'title' => t('report spam'),
+        'href' => 'node/add/project-issue/webmasters',
+        'query' => array(
+          'component' => 'Spam',
+          'categories' => 'task',
+          'title' => 'Spam Report',
+          'body' => 'Reporting the following comment as spam: ' . url('node/' . $comment->nid, array('absolute' => TRUE, 'fragment' => 'comment-' . $comment->cid)),
+        ),
+      );
+      return $links;
+    }
+  }
+}
