diff --git a/project.module b/project.module
index 94e77c6..afa4476 100644
--- a/project.module
+++ b/project.module
@@ -892,10 +892,12 @@ 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.
+  // Update an existing record, if any.
+  if (db_result(db_query_range('SELECT 1 FROM {project_maintainer} WHERE nid = %d AND uid = %d', $nid, $uid, 0, 1))) {
+    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);
+  }
+  else {
+    // Not existing record, 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']));
   }
 
