diff -u project2/issue.inc project/issue.inc
--- project2/issue.inc	2005-09-30 04:15:58.000000000 -0400
+++ project/issue.inc	2005-10-03 22:41:52.000000000 -0400
@@ -72,6 +72,63 @@
         return project_issue_subscribe();
       }
       break;
+    
+    case t('issues'):
+    if (arg(3) == 'subscribe') {
+      $project = project_project_retrieve(arg(1));
+      if ($GLOBALS['user']->uid && $project->nid && node_access('view', $project)) {
+        return project_issue_subscribe($project);
+      }
+      else {
+        return project_issue_subscribe();
+      }
+      break;
+    }
+    elseif (arg(3) =='statistics') {
+      $project = project_project_retrieve(arg(1));
+      if ($project->nid && node_access('view', $project)) {
+        return project_issue_statistics($project);
+      }
+      else {
+        return project_issue_statistics();
+      }
+      break;
+    }
+    elseif (arg(3) == 'submit') {
+      $project = project_project_retrieve(arg(1));
+      // We assume that a user may create issues for projects that he may view.
+      if ($project->nid && node_access('view', $project)) {
+        drupal_goto("node/add/project_issue/$project->uri");
+      }
+      else {
+        drupal_goto("node/add/project_issue");
+      }
+      break;
+    }
+    elseif (arg(3) == 'search') {
+      $project = project_project_retrieve(arg(1));
+      if ($project->nid && node_access('view', $project)) {
+        return project_issue_query($project);
+      }
+      else {
+        return project_issue_query();
+      }
+      break;
+    }
+    else {
+      $project = project_project_retrieve(arg(1));
+      if ($project->nid && node_access('view', $project)) {
+        $query = new StdClass();
+        $query->projects = array($project->nid);
+
+        return project_issue_query_result($query);
+      }
+      else {
+        return project_issue_query_result();
+      }
+      break;
+    }
+    
     case 'user':
        $_GET['users'] = $GLOBALS['user']->uid;
     default:
@@ -235,6 +292,12 @@
     $output = theme('table', $headers, $rows);
   }
 
+  //set breadcrumbs
+  $breadcrumb = array(l(t('Home'), NULL));
+  $breadcrumb[] = l(t($project->title), 'node/'. $project->nid);
+  $breadcrumb[] = l(t('issues'), 'node/'. $project->nid .'/issues');
+  drupal_set_breadcrumb($breadcrumb);
+
   $output .= form_submit(t('Subscribe'));
   return form($output);
 }
@@ -427,7 +490,7 @@
       $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/'. $project->nid .'/issues', 'title' => t('issues'));
     $breadcrumb[] = array('path' => 'node/'. $node->nid);
     menu_set_location($breadcrumb);
 
@@ -704,6 +767,15 @@
 }
 
 function project_issue_query_result($query = NULL, $format = 'html', $search = true) {
+  //Set breadcrumbs
+  if ($project = project_project_retrieve(arg(1))) {
+    $breadcrumb = array(l(t('Home'), NULL));
+    $breadcrumb[] = l(t('projects'), '/project');
+    $breadcrumb[] = l(t($project->title), 'node/'. $project->nid);
+    $breadcrumb[] = l(t('issues'), 'node/'. $project->nid .'/issues');
+    drupal_set_breadcrumb($breadcrumb);
+  }
+
   $query = project_issue_query_parse($query);
 
   $categories = array(0 => t('<all>')) + project_issue_category();
diff -u project2/project.inc project/project.inc
--- project2/project.inc	2005-09-26 04:15:32.000000000 -0400
+++ project/project.inc	2005-10-03 23:02:06.000000000 -0400
@@ -179,85 +179,42 @@
     $breadcrumb = project_project_set_location($node, $breadcrumb);
     menu_set_location($breadcrumb);
     
+    // Download section
     if ($releases = project_release_load($node)) {
       list($rid, $version) = each($releases);
       $release = project_release_load($rid);
-
-      // Download section
-      $links = array();
-      
+      $output .= '<dl> <dt>';
       if ($release->version == 'cvs') {
-        $links[] = l(t('Download latest release (%version)', array('%version' => $release->version)), $release->path);
+        $output .= l(t('Download latest release (%version)', array('%version' => $release->version)), $release->path);
       }
       else {
-        $links[] = l(t('Download latest release (%version, %date)', array('%version' => $release->version, '%date' => format_date($release->created, 'small'))), $release->path);
+        $output .= l(t('Download latest release (%version, %date)', array('%version' => $release->version, '%date' => format_date($release->created, 'small'))), $release->path);
       }
       if ($release->changes) {
-        $links[] = l(t('Read release notes'), 'node/'. $node->nid .'/release', null, null, 'version-'. $release->version);
-      }
-      if (count($releases) > 1) {
-        $links[] = l(t('View older releases'), 'node/'. $node->nid .'/release');
+        $output .= '<dd>'.$release->changes.'</dl>';
       }
     }
-    if (node_access('update', $node) && !variable_get('project_release_directory', '')) {
-      $links[] = l(t('Add new release'), 'node/'. $node->nid .'/release/add');
-    }
-    if ($links) {
-      $output .= theme('item_list', $links, t('Releases'));
-    }
     
     // Misc section
     $links = array();
-    
     foreach (array('documentation' => t('Read documentation'), 'license' => t('Read license'), 'changelog' => t('Read complete log of changes'), 'demo' => t('Try out a demonstration'), 'screenshots' => t('Look at screenshots')) as $uri => $name) {
       if (!empty($node->$uri)) {
         $links[] = sprintf('<a href="%s">%s</a>', $node->$uri, $name);
       }
     }
-    
-    if ($links) {
-      $output .= theme('item_list', $links, t('Resources'));
-    }
-    
-    // Support section
-    $links = array();
-    
-    $links[] = l(t('Support forum'), variable_get('project_support_forum', 'forum/18'));
-    
-    if ($node->issues) {
-      #$output .= '<p>'. t('If you think you have found a bug please check the list of existing bugs reported, if you do not find it please submit a new bug report. Remember to provide as much information as possible to make it easier for the developers to fix the issue.') .'</p>';
-      $links[] = l(t('View pending bug reports'), 'project/issues/'. $node->uri, null, 'categories=bug', null);
-      $links[] = l(t('View pending feature requests'), 'project/issues/'. $node->uri, null, 'categories=feature', null);
-      $links[] = l(t('Report new bug'), 'node/add/project_issue/'. $node->uri .'/bug');
-      $links[] = l(t('Request new feature'), 'node/add/project_issue/'. $node->uri .'/feature');
-    }
-    
-    if ($links) {
-      $output .= theme('item_list', $links, t('Support'));
-    }
-    
-    // Developer section
-    $links = array();
-    
-    if ($node->issues) {
-      #$output .= '<p>'. t('If you think you have found a bug please check the list of existing bugs reported, if you do not find it please submit a new bug report. Remember to provide as much information as possible to make it easier for the developers to fix the issue.') .'</p>';
-      $links[] = l(t('View pending patches'), 'project/issues/'. $node->uri, null, 'states=8', null);
-      $links[] = l(t('View available tasks'), 'project/issues/'. $node->uri, null, 'categories=task', null);
-      $links[] = l(t('View all issues'), 'project/issues/'. $node->uri);
-    }
-    
+
+    //CVS options
     if ($node->cvs) {
-      $links[] = sprintf('<a href="%s">%s</a>', $node->cvs, t('Browse the CVS repository'));
+      $links[]= sprintf('<a href="%s">%s</a>', $node->cvs, t('Browse the CVS repository'));
     }
-    
     if (module_exist('cvs')) {
       $links[] = l(t('View CVS messages'), 'project/cvs/'. $node->nid);
       $links[] = l(t('Developers'), 'project/developers/'. $node->nid);
     }
-    
     if ($links) {
-      $output .= theme('item_list', $links, t('Development'));
+      $output .= theme('item_list', $links, t('Resources'));
     }
+    
     $node->body .= $output;
   }
 }
@@ -265,15 +222,16 @@
 function project_project_releases() {
   $node = node_load(array('nid' => arg(1)));
 
-  // Breadcrumb navigation
-  $breadcrumb[] = array('path' => 'node/'. $node->nid .'/', 'title' => $node->title);
-  $breadcrumb[] = array('path' => 'node/'. arg(1) .'/release', 'title' => t('Releases'));
-  $breadcrumb = project_project_set_location($node, $breadcrumb);
-
-  menu_set_location($breadcrumb);
+  //Breadcrumbs
+  $breadcrumb = array(l(t('Home'), NULL), l(t('Projects'), 'project'));
+  $taxonomy_terms = taxonomy_node_get_terms($node->nid);
+  if (function_exists('taxonomy_node_get_terms') && $term = reset($taxonomy_terms)) {
+    $breadcrumb[] = l($term->name, 'project', NULL, "tid=$term->tid");
+  }
+  $breadcrumb[] = l($node->title, "node/$node->nid");
+  drupal_set_breadcrumb($breadcrumb);
 
   $output = project_release_list($node);
-
   drupal_set_title(check_plain($node->title));
   return $output;
 }
diff -u project2/project.module project/project.module
--- project2/project.module	2005-09-30 04:15:58.000000000 -0400
+++ project/project.module	2005-10-03 23:12:06.269693656 -0400
@@ -147,6 +147,9 @@
           $links[] = l(t('follow up'), "project/comments/add/$node->nid");
         }
       }
+      elseif ($node->type == 'project_project') {
+        //Links to be displayed at the bottom of a project node
+      }
       break;
   }
 
@@ -154,17 +157,18 @@
 }
 
 function project_menu($may_cache) {
+//  global $node;
   $items = array();
 
   drupal_set_html_head(theme('stylesheet_import', drupal_get_path('module', 'project') .'/project.css'));
-
   if ($may_cache) {
+    
     // User pages:
     $access = user_access('access projects');
-
     $items[] = array('path' => 'project', 'title' => t('projects'), 'callback' => 'project_page_overview', 'access' => $access, 'type' => MENU_NORMAL_ITEM);
+    $items[] = array('path' => 'project/user', 'title' => t('my projects'), 'callback' => 'project_page_user', 'access' => $GLOBALS['user']->uid && $access, 'type' => MENU_NORMAL_ITEM);
 
-    // Project browsing pages
+    // Project browsing pages **Is there something we can do here?
     $vocabs = taxonomy_get_vocabularies('project_project');
     if (module_exist('taxonomy') && $vocabulary = current($vocabs)) {
       $terms = taxonomy_get_tree($vocabulary->vid);
@@ -200,12 +204,10 @@
       }
     }
 
-    $items[] = array('path' => 'project/user', 'title' => t('my projects'), 'callback' => 'project_page_user', 'access' => $GLOBALS['user']->uid && $access, 'type' => MENU_NORMAL_ITEM);
-
-    // Developers
+    // Developers **Doesn't exist!?
     $items[] = array('path' => 'project/developers', 'title' => t('developers'), 'callback' => 'project_developers', 'access' => $access, 'type' => MENU_CALLBACK);
 
-    // CVS messages:
+    // CVS messages:**Doesn't exist!?
     $items[] = array('path' => 'project/cvs', 'title' => t('CVS'), 'callback' => 'project_cvs', 'access' => $access, 'type' => MENU_CALLBACK);
 
     // Create projects
@@ -220,10 +222,12 @@
     $items[] = array('path' => 'project/issues/add', 'title' => t('submit'), 'callback' => 'project_issue_page', 'access' => $access, 'type' => MENU_NORMAL_ITEM);
     $items[] = array('path' => 'project/issues/statistics', 'title' => t('statistics'), 'callback' => 'project_issue_page', 'access' => $access, 'type' => MENU_NORMAL_ITEM);
     $items[] = array('path' => 'project/issues/search', 'title' => t('search'), 'callback' => 'project_issue_page', 'access' => $access, 'type' => MENU_NORMAL_ITEM);
-
     // Create issues
     $access = user_access('create project issues');
     $items[] = array('path' => 'node/add/project_issue', 'title' => t('issue'), 'callback' => 'node_page', 'access' => $access, 'type' => MENU_NORMAL_ITEM, 'weight' => 1);
+    // Comments **Doesn't exist!?
+    $items[] = array('path' => 'project/comments', 'title' => t('comments'), 'callback' => 'project_comment_page', 'access' => $access, 'type' => MENU_CALLBACK);
+
 
     // Administer issue status settings
     $access = user_access('administer projects');
@@ -231,32 +235,40 @@
     $items[] = array('path' => 'admin/settings/project/status/save', 'title' => t('save'), 'callback' => 'project_issue_admin_states_page', 'access' => $access, 'type' => MENU_CALLBACK);
     $items[] = array('path' => 'admin/settings/project/status/delete', 'title' => t('delete'), 'callback' => 'project_issue_admin_states_page', 'access' => $access, 'type' => MENU_CALLBACK);
 
-    // Comments
-    $access = user_access('create project issues');
-    $items[] = array('path' => 'project/comments', 'title' => t('comments'), 'callback' => 'project_comment_page', 'access' => $access, 'type' => MENU_CALLBACK);
-
     // Releases
     if (variable_get('project_release_directory', '')) {
       $access = user_access('administer projects');
       $items[] = array('path' => 'admin/settings/project/reload', 'title' => t('scan for releases'), 'callback' => 'project_release_scan', 'access' => $access, 'type' => MENU_NORMAL_ITEM);
     }
+    
   }
-  else {
+  else { // !$may_cache
     if (arg(0) == 'node' && is_numeric(arg(1))) {
       $node = node_load(array('nid' => arg(1)));
       if ($node->type == 'project_project') {
-        $items[] = array('path' => 'node/'. arg(1) .'/release', 'title' => t('releases'), 'callback' => 'project_project_releases', 'access' => node_access('view', $node), 'weight' => 0, 'type' => MENU_CALLBACK);
-
-        if (node_access('update', $node)) {
-          $items[] = array('path' => 'node/'. arg(1) .'/release/overview', 'title' => t('overview'), 'callback' => 'project_project_releases', 'access' => node_access('view', $node), 'weight' => 0, 'type' => MENU_CALLBACK);
-        }
-
-        if (!variable_get('project_release_directory', '')) {
-          $items[] = array('path' => 'node/'. arg(1) .'/release/add', 'title' => t('add'), 'callback' => 'project_release_submit', 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_CALLBACK);
-        }
+        
+        //Issue Page Tabs
+        $access = user_access('access project issues');
+        $items[] = array('path' => 'node/'.arg(1).'/issues',             'title' => t('issue tracking'),'callback' => 'project_issue_page', 'access' => $access, 'weight' => '5', 'type' => MENU_LOCAL_TASK);
+        $items[] = array('path' => 'node/'.arg(1).'/issues/'.$node->uri, 'title' => t('issues'),'callback' => 'project_issue_page', 'access' => $access, 'weight' => '0', 'type' => MENU_DEFAULT_LOCAL_TASK);
+        $items[] = array('path' => 'node/'.arg(1).'/issues/submit',      'title' => t('submit'), 'callback' => 'project_issue_page', 'access' => $access, 'weight' => '5', 'type' =>  MENU_LOCAL_TASK);
+        $items[] = array('path' => 'node/'.arg(1).'/issues/statistics',  'title' => t('statistics'), 'callback' => 'project_issue_page', 'access' => $access, 'weight' => '6', 'type' =>  MENU_LOCAL_TASK);
+        $items[] = array('path' => 'node/'.arg(1).'/issues/subscribe',   'title' => t('subscribe'), 'callback' => 'project_issue_page', 'access' => $GLOBALS['user']->uid && $access, 'weight' => '6', 'type' => MENU_LOCAL_TASK);
+        $items[] = array('path' => 'node/'.arg(1).'/issues/search',      'title' => t('search'), 'callback' => 'project_issue_page', 'weight' => '6', 'access' => $access, 'type' => MENU_LOCAL_TASK);
+
+        //Release Page Tabs
+        $access = node_access('view', $node);
+        $items[] = array('path' => 'node/'. arg(1) .'/release', 'title' => t('downloads'), 'callback' => 'project_project_releases', 'access' => node_access('view', $node), 'weight' => 4, 'type' => MENU_LOCAL_TASK);
+//        if (node_access('update', $node)) {
+          $items[] = array('path' => 'node/'. arg(1) .'/release/overview', 'title' => t('overview'), 'callback' => 'project_project_releases', 'access' => node_access('view', $node), 'weight' => 0, 'type' => MENU_DEFAULT_LOCAL_TASK);
+  //      }
+        //if (!variable_get('project_release_directory', '')) {
+          $access =node_access('update', $node);
+          $items[] = array('path' => 'node/'. arg(1) .'/release/add', 'title' => t('add'), 'callback' => 'project_release_submit', 'access' => $access, 'weight' => 1, 'type' => MENU_LOCAL_TASK);
+        //}
         if (arg(2) == 'release' && is_numeric(arg(4))) {
-          $items[] = array('path' => 'node/'. arg(1) .'/release/edit/'. arg(4), 'title' => t('edit'), 'callback' => 'project_release_submit', 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_CALLBACK);
-          $items[] = array('path' => 'node/'. arg(1) .'/release/delete/'. arg(4), 'title' => t('edit'), 'callback' => 'project_release_submit', 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_CALLBACK);
+          $items[] = array('path' => 'node/'. arg(1) .'/release/edit/'. arg(4), 'title' => t('edit'), 'callback' => 'project_release_submit', 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_LOCAL_TASK);
+          $items[] = array('path' => 'node/'. arg(1) .'/release/delete/'. arg(4), 'title' => t('delete'), 'callback' => 'project_release_submit', 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_LOCAL_TASK);
         }
       }
     }
