Index: comment.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/comment.inc,v
retrieving revision 1.108
diff -u -F^f -r1.108 comment.inc
--- comment.inc	25 Oct 2007 04:44:04 -0000	1.108
+++ comment.inc	28 Oct 2007 00:37:47 -0000
@@ -33,15 +33,8 @@ function project_issue_comment(&$arg, $o
       if (isset($arg['cid']['#value'])) {
         return array();
       }
-      // Set breadcrumb.
-      $extra = array();
-      $extra[] = l($project->title, 'node/'. $project->nid);
-      // Only add issue title to the breadcrumb if this comment is a reply
-      // to another comment.
-      if ($arg['pid']['#value']) {
-        $extra[] = l($node->title, 'node/'. $node->nid);
-      }
-      project_project_set_breadcrumb($project, $extra);
+
+      project_issue_set_breadcrumb($node, $project);
 
       // We need to ask for almost the same metadata as project issue itself
       // so let's reuse the form.
Index: issue.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/issue.inc,v
retrieving revision 1.271
diff -u -F^f -r1.271 issue.inc
--- issue.inc	25 Oct 2007 04:44:04 -0000	1.271
+++ issue.inc	28 Oct 2007 00:37:47 -0000
@@ -841,17 +841,7 @@ function project_issue_view($node, $teas
       '#weight' => -3,
     );
 
-    // Breadcrumb navigation
-    $breadcrumb[] = array('path' => 'project', 'title' => t('Projects'));
-    if (project_use_taxonomy()) {
-      $taxonomy_terms = taxonomy_node_get_terms($node->pid);
-      $term = reset($taxonomy_terms);
-      $breadcrumb[] = array('path' => 'project/'. $term->name, 'title' => $term->name);
-    }
-    $breadcrumb[] = array('path' => 'node/'. $project->nid, 'title' => $project->title);
-    $breadcrumb[] = array('path' => 'project/issues/'. $project->uri, 'title' => t('Issues'));
-    $breadcrumb[] = array('path' => 'node/'. $node->nid);
-    menu_set_location($breadcrumb);
+    project_issue_set_breadcrumb($node, $project);
   }
   return $node;
 }
Index: project_issue.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/project_issue.module,v
retrieving revision 1.66
diff -u -F^f -r1.66 project_issue.module
--- project_issue.module	26 Oct 2007 13:46:13 -0000	1.66
+++ project_issue.module	28 Oct 2007 00:37:48 -0000
@@ -832,4 +832,27 @@ function project_issue_comment_mass_upda
   while ($issue_comment = db_fetch_object($issue_comments)) {
     project_issue_update_by_comment($issue_comment, 'update');
   }
+}
+
+/**
+ * Set the breadcrumb trail for project issues and issue followups.
+ *
+ * Since the comment form and a full node view of an issue can appear
+ * on both full issue pages and comment reply pages, this function checks
+ * to see which page is being loaded, and sets the breadcrumb appropriately.
+ *
+ * @param $node
+ *   The issue node object.
+ * @param $project
+ *   The project node object.
+ */
+function project_issue_set_breadcrumb($node, $project) {
+  $extra = array();
+  $extra[] = l($project->title, 'node/'. $project->nid);
+  $extra[] = l('Issues', 'project/issues/'. $project->uri);
+  // Add the issue title if we're on a comment reply page.
+  if (project_issue_is_comment_reply()) {
+    $extra[] = l($node->title, 'node/'. $node->nid);
+  }
+  project_project_set_breadcrumb($project, $extra);
 }
\ No newline at end of file
