diff -Naurw third-party/project/issue.inc project/issue.inc
--- third-party/project/issue.inc	2005-01-14 01:20:58.000000000 +0200
+++ project/issue.inc	2005-02-28 18:24:51.000000000 +0200
@@ -100,7 +100,7 @@
   if (!$project->nid) {
     $header = array_merge(array(t('Project')), project_issue_state(), array(t('Total')));
     $rows = array();
-    $result = db_query("SELECT n.nid, n.title, p.state, COUNT(p.nid) AS total FROM {node} n INNER JOIN {project_issues} p ON n.nid = p.pid WHERE n.type = 'project_project' AND n.status = 1 GROUP BY n.nid, p.state");
+    $result = db_query("SELECT n.nid, n.title, p.state, COUNT(p.nid) AS total FROM {node} n INNER JOIN {project_issues} p ON n.nid = p.pid WHERE n.type = 'project_project' AND n.status = 1 GROUP BY n.nid, p.state. n.title");
 
     $orig = array('project' => array('data' => 0));
     foreach (project_issue_state() as $key => $value) {
@@ -510,7 +510,7 @@
   // Load active project
   if (!$project) {
     if (count($query->projects) == 1) {
-      $project = node_load(array('nid' => $query->projects[0]));
+      $project = node_load(array('nid' => (int)@$query->projects[0]));
     }
   }
 
diff -Naurw third-party/project/posgres-for-4.5.diff project/posgres-for-4.5.diff
--- third-party/project/posgres-for-4.5.diff	1970-01-01 02:00:00.000000000 +0200
+++ project/posgres-for-4.5.diff	2005-02-28 18:36:53.000000000 +0200
@@ -0,0 +1,21 @@
+diff -Naurw third-party/project/issue.inc project/issue.inc
+--- third-party/project/issue.inc	2005-01-14 01:20:58.000000000 +0200
++++ project/issue.inc	2005-02-28 18:24:51.000000000 +0200
+@@ -100,7 +100,7 @@
+   if (!$project->nid) {
+     $header = array_merge(array(t('Project')), project_issue_state(), array(t('Total')));
+     $rows = array();
+-    $result = db_query("SELECT n.nid, n.title, p.state, COUNT(p.nid) AS total FROM {node} n INNER JOIN {project_issues} p ON n.nid = p.pid WHERE n.type = 'project_project' AND n.status = 1 GROUP BY n.nid, p.state");
++    $result = db_query("SELECT n.nid, n.title, p.state, COUNT(p.nid) AS total FROM {node} n INNER JOIN {project_issues} p ON n.nid = p.pid WHERE n.type = 'project_project' AND n.status = 1 GROUP BY n.nid, p.state. n.title");
+ 
+     $orig = array('project' => array('data' => 0));
+     foreach (project_issue_state() as $key => $value) {
+@@ -510,7 +510,7 @@
+   // Load active project
+   if (!$project) {
+     if (count($query->projects) == 1) {
+-      $project = node_load(array('nid' => $query->projects[0]));
++      $project = node_load(array('nid' => (int)@$query->projects[0]));
+     }
+   }
+ 
diff -Naurw third-party/project/project.module project/project.module
--- third-party/project/project.module	2005-02-28 18:27:19.000000000 +0200
+++ project/project.module	2005-02-28 18:25:48.000000000 +0200
@@ -224,7 +224,7 @@
       project_page_overview();
       break;
 
-      if ($vid = db_result(db_query_range("SELECT vid FROM vocabulary WHERE INSTR(nodes, 'project_project') ORDER BY weight DESC", 0, 1))) {
+      if ($vid = db_result(db_query_range("SELECT vid FROM vocabulary WHERE nodes LIKE '%project_project%' ORDER BY weight DESC", 0, 1))) {
         $result = db_queryd("SELECT DISTINCT(n.nid), n.title, t.tid, t.name, t.weight FROM {node} n INNER JOIN {term_node} l ON n.nid = l.nid INNER JOIN {term_data} t ON l.tid = t.tid ". node_access_join_sql() ." WHERE ". node_access_where_sql() ." AND t.vid = %d AND n.type = 'project_project' AND n.status = 1 ORDER BY t.weight, n.title", $vid);
       }
       else {
@@ -324,7 +324,7 @@
     array('data' => t('Issues'), 'colspan' => 4, 'field' => 'count')
   );
 
-  $result = db_query("SELECT DISTINCT(n.nid), n.title, n.changed, COUNT(p.nid) AS count FROM {node} n LEFT JOIN {project_issues} p ON n.nid = p.pid AND p.state IN (1,2,8) ". node_access_join_sql() ." WHERE n.type = 'project_project' AND n.status = 1 AND n.uid = %d AND ". node_access_where_sql() ." GROUP BY n.nid %s", $user->uid, tablesort_sql($header));
+  $result = db_query("SELECT DISTINCT(n.nid), n.title, n.changed, COUNT(p.nid) AS count FROM {node} n LEFT JOIN {project_issues} p ON n.nid = p.pid AND p.state IN (1,2,8) ". node_access_join_sql() ." WHERE n.type = 'project_project' AND n.status = 1 AND n.uid = %d AND ". node_access_where_sql() ." GROUP BY n.nid, n.title, n.changed %s", $user->uid, tablesort_sql($header));
 
   while ($node = db_fetch_object($result)) {
     $rows[] = array(
diff -Naurw third-party/project/project.pgsql project/project.pgsql
--- third-party/project/project.pgsql	1970-01-01 02:00:00.000000000 +0200
+++ project/project.pgsql	2005-02-28 13:31:34.000000000 +0200
@@ -0,0 +1,101 @@
+--
+-- Table structure for table 'project_projects'
+--
+
+CREATE TABLE project_projects (
+  nid integer NOT NULL default '0',
+  uri varchar(50) NOT NULL default '',
+  homepage varchar(255) NOT NULL default '',
+  changelog varchar(255) NOT NULL default '',
+  cvs varchar(255) NOT NULL default '',
+  demo varchar(255) NOT NULL default '',
+  release_directory varchar(255) NOT NULL default '',
+  issues smallint NOT NULL default '0',
+  components text,
+  version integer NOT NULL default '0',
+  mail varchar(255) not null default '',
+  mail_digest varchar(255) not null default '',
+  mail_copy varchar(255) not null default '',
+  mail_copy_filter varchar(255) not null default '',
+  mail_reminder smallint NOT NULL default '0',
+
+  help text,
+  screenshots varchar(255) not null default '',
+  mail_copy_filter_state varchar(255) not null default '',
+  documentation varchar(255) not null default '',
+  license varchar(255) not null default '',
+  PRIMARY KEY (nid)
+);
+CREATE INDEX project_projects_uri_idx ON project_projects (uri);
+
+--
+-- Table structure for table 'project_releases'
+--
+
+CREATE TABLE project_releases (
+  rid integer NOT NULL default '0',
+  nid integer NOT NULL default '0',
+  fid integer NOT NULL default '0',
+  path varchar(255) NOT NULL default '',
+  created integer NOT NULL default '0',
+  version varchar(255) NOT NULL default '',
+  changes text,
+  weight smallint NOT NULL default '0',
+  changed integer NOT NULL default '0',
+  status smallint NOT NULL default '1',
+  PRIMARY KEY (rid)
+);
+CREATE INDEX project_releases_nid_idx ON project_releases (nid);
+
+--
+-- Table structure for table 'project_issues'
+--
+
+CREATE TABLE project_issues (
+  nid integer NOT NULL default '0',
+  pid integer NOT NULL default '0',
+  category varchar(255) NOT NULL default '',
+  component varchar(255) NOT NULL default '',
+  priority smallint NOT NULL default '0',
+  rid integer NOT NULL default '0',
+  assigned integer NOT NULL default '0',
+  state smallint NOT NULL default '0',
+  file_path varchar(255) NOT NULL default '',
+  file_mime varchar(255) NOT NULL default '',
+  file_size integer NOT NULL default 0,
+  PRIMARY KEY (nid)
+);
+CREATE INDEX project_issues_pid_idx ON project_issues (pid);
+
+
+--
+-- Table structure for table 'project_comments'
+--
+
+CREATE TABLE project_comments (
+  cid integer NOT NULL default '0',
+  nid integer NOT NULL default '0',
+  uid integer NOT NULL default '0',
+  name varchar(255) NOT NULL default '',
+  created integer NOT NULL default '0',
+  changed integer NOT NULL default '0',
+  body bytea,
+  data bytea,
+  file_path varchar(255) NOT NULL default '',
+  file_mime varchar(255) NOT NULL default '',
+  file_size integer NOT NULL default 0,
+  PRIMARY KEY (cid)
+);
+CREATE INDEX project_comments_nid_idx ON project_comments (nid);
+
+--
+-- Table structure for table 'project_subscriptions'
+--
+
+CREATE TABLE project_subscriptions (
+  nid integer NOT NULL default '0',
+  uid integer NOT NULL default '0',
+  level integer NOT NULL default '0' -- smallint would surpress the index
+);
+
+CREATE INDEX project_subscriptions_nid_uid_level_idx ON project_subscriptions (nid, uid, level);
diff -Naurw third-party/project/release.inc project/release.inc
--- third-party/project/release.inc	2005-02-28 18:27:19.000000000 +0200
+++ project/release.inc	2005-02-28 18:29:31.000000000 +0200
@@ -392,7 +392,7 @@
     $versions = unserialize($versions->data);
   }
   else {
-    $result = db_query("SELECT version FROM {project_releases} WHERE status = 1 GROUP BY version ORDER BY created DESC;");
+    $result = db_query("SELECT version FROM {project_releases} WHERE status = 1 GROUP BY created, version ORDER BY created DESC;");
     $versions = array();
     while ($object = db_fetch_object($result)) {
       $version = preg_replace('/^(.+?)\.?(?:\d+)?$/', '\1', $object->version);
