diff --git a/project.module b/project.module
index 94e77c6..9044737 100644
--- a/project.module
+++ b/project.module
@@ -892,12 +892,11 @@ function project_project_permission_info($project = NULL) {
  * @see hook_project_permission_info()
  */
 function project_maintainer_save($nid, $uid, $permissions = array()) {
-  // Try to update an existing record, if any.
-  db_query("UPDATE {project_maintainer} SET edit_project = %d, administer_maintainers = %d WHERE nid = %d AND uid = %d", !empty($permissions['edit project']), !empty($permissions['administer maintainers']), $nid, $uid);
-  if (!db_affected_rows()) {
-    // Didn't update anything, add this as a new maintainer, instead.
-    db_query("INSERT INTO {project_maintainer} (nid, uid, edit_project, administer_maintainers) VALUES (%d, %d, %d, %d)", $nid, $uid, !empty($permissions['edit project']), !empty($permissions['administer maintainers']));
-  }
+  // Try to delete an existing record, if any.
+  db_query("DELETE FROM {project_maintainer} WHERE nid = %d and uid = %d", $nid, $uid);
+
+  // Add this as a new maintainer.
+  db_query("INSERT INTO {project_maintainer} (nid, uid, edit_project, administer_maintainers) VALUES (%d, %d, %d, %d)", $nid, $uid, !empty($permissions['edit project']), !empty($permissions['administer maintainers']));
 
   // Invoke hook_project_maintainer_save() to let other modules know this
   // maintainer is being saved so they can take any actions or record any
