diff --git a/common/project-info2.class.php b/common/project-info2.class.php
index 538cf8e..5396b95 100644
--- a/common/project-info2.class.php
+++ b/common/project-info2.class.php
@@ -113,7 +113,7 @@
     function generate_common_nav( $thenav, $users = NULL, $integrators = NULL, $contributors = NULL ) {
     	global $Nav;
     	$Nav->setLinkList( array() );
-    	$Nav->addNavSeparator( $this->info->projectshortname . "2", $this->info->projecturl );
+    	$Nav->addNavSeparator( $this->info->projectshortname . "3", $this->info->projecturl );
     	
         $Nav->addCustomNav("About", $this->info->descriptionurl, "", 1);
 	        if( $this->info->teamurl
@@ -155,20 +155,20 @@
     }
     
     function newsgroup_url() {
-    	$x = $info->newsgroup;
+    	$x = $this->info->newsgroup;
     	if( !$x ) return "";
     	if( count($x) > 0 ) $x = $x[0];
     	return "http://dev.eclipse.org/newslists/news." . $x->name . "/maillist.html";
     }
     function mailinglist_url() {
-    	$x = $info->mailinglist;
+    	$x = $this->info->mailinglist;
     	if( !$x ) return "";
     	if( count($x) > 0 ) $x = $x[0];
     	return "https://dev.eclipse.org/mailman/listinfo/" . $x->name;
     }
     function bugzilla_url() {
-    	if( $info->bugzilla->productname )
-	    	return "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=" . $info->bugzilla->productname . "&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=";
+    	if( $this->info->bugzilla->productname )
+	    	return "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=" . $this->info->bugzilla->productname . "&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=";
 	    else
 	    	return "";
     }
