diff --git includes/project_maintainers.inc includes/project_maintainers.inc
index 4e11efb..231afe0 100644
--- includes/project_maintainers.inc
+++ includes/project_maintainers.inc
@@ -37,7 +37,7 @@
  */
 function project_maintainers_form($form_state, $project) {
   // Load all the info about per-project permissions on this site.
-  $project_perms = project_permission_load();
+  $project_perms = project_permission_load($project);
 
   $form = array();
   $form['#tree'] = TRUE;
@@ -159,7 +159,7 @@ function theme_project_maintainers_form($form) {
   // keys. So we ditch the keys at this point to avoid notices.
   $output .= theme('table', array_values($header), $rows);
 
-  $project_perms = project_permission_load();
+  $project_perms = project_permission_load($form['#project']);
   $output .= '<dl class="description">';
   foreach ($project_perms as $perm => $perm_info) {
     $output .= ' <dt>' . $perm_info['title'] . '</dt>';
@@ -209,7 +209,7 @@ function project_maintainers_form_submit($form, &$form_state) {
     foreach ($form_state['values']['maintainers'] as $uid => $maintainer) {
       // Just to be extra safe, always give the project owner full permissions.
       if ($uid == $form['#project']->uid) {
-        $perms = array_fill_keys(array_keys(project_permission_load()), 1);
+        $perms = array_fill_keys(array_keys(project_permission_load($form['#project'])), 1);
       }
       else {
         $perms = $maintainer['permissions'];
diff --git project.inc project.inc
index c3b3b7e..dfc776e 100644
--- project.inc
+++ project.inc
@@ -467,7 +467,7 @@ function project_project_insert($node) {
   }
   db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, screenshots, documentation, license, sandbox) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)", $node->nid, $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license'], $node->project['sandbox']);
 //  project_release_scan_directory($node->project['uri']);
-  $perms = array_fill_keys(array_keys(project_permission_load()), 1);
+  $perms = array_fill_keys(array_keys(project_permission_load($node)), 1);
   project_maintainer_save($node->nid, $node->uid, $perms);
 }
 
@@ -479,7 +479,7 @@ function project_project_update($node) {
   }
   db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', screenshots = '%s', documentation = '%s', license = '%s', sandbox = %d WHERE nid = %d", $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license'], $node->project['sandbox'], $node->nid);
 //  project_release_scan_directory($node->project['uri']);
-  $perms = array_fill_keys(array_keys(project_permission_load()), 1);
+  $perms = array_fill_keys(array_keys(project_permission_load($node)), 1);
   project_maintainer_save($node->nid, $node->uid, $perms);
 }
 
diff --git project.module project.module
index 530b421..5952cab 100644
--- project.module
+++ project.module
@@ -808,15 +808,18 @@ function project_project_access($op, $node, $account) {
  * This invokes hook_project_permission_info() and
  * hook_project_permission_alter(), and caches the results in RAM.
  *
+ * @param $project
+ *   A project object to pass to hook_project_permission_info().
+ *
  * @see hook_project_permission_info()
  * @see hook_project_permission_alter()
  * @see drupal_alter()
  */
-function project_permission_load() {
+function project_permission_load($project = NULL) {
   static $project_permissions = array();
   if (empty($project_permissions)) {
-    $project_permissions = module_invoke_all('project_permission_info');
-    drupal_alter('project_permission', $project_permissions);
+    $project_permissions = module_invoke_all('project_permission_info', $project);
+    drupal_alter('project_permission', $project_permissions, $project);
   }
   return $project_permissions;
 }
@@ -824,7 +827,7 @@ function project_permission_load() {
 /**
  * Implement hook_project_permission_info()
  */
-function project_project_permission_info() {
+function project_project_permission_info($project = NULL) {
   return array(
     'edit project' => array(
       'title' => t('Edit project'),
diff --git release/project_release.module release/project_release.module
index c5bfcaa..ad16153 100644
--- release/project_release.module
+++ release/project_release.module
@@ -144,7 +144,7 @@ function project_release_node_info() {
 /**
  * Implement hook_project_permission_info()
  */
-function project_release_project_permission_info() {
+function project_release_project_permission_info($project) {
   return array(
     'administer releases' => array(
       'title' => t('Administer releases'),
