diff --git a/src/sacctmgr/common.c b/src/sacctmgr/common.c
index ea3df75ea3a5fba82f109b68d5a22e098565728e..f18e731c32fb006e37ab7304db00016f8b6351cf 100644
--- a/src/sacctmgr/common.c
+++ b/src/sacctmgr/common.c
@@ -970,18 +970,20 @@ extern slurmdb_qos_rec_t *sacctmgr_find_qos_from_list(
 }
 
 extern slurmdb_res_rec_t *sacctmgr_find_res_from_list(
-	List res_list, char *name, char *server)
+	List res_list, uint32_t id, char *name, char *server)
 {
 	ListIterator itr = NULL;
 	slurmdb_res_rec_t *res = NULL;
 
-	if (!name || !res_list)
+	if ((id == NO_VAL) && (!name || !res_list))
 		return NULL;
 
 	itr = list_iterator_create(res_list);
 	while ((res = list_next(itr))) {
-		if (!strcasecmp(server, res->server)
-		    && !strcasecmp(name, res->name))
+		if ((id == res->id)
+		    || (name && server
+			&& !strcasecmp(server, res->server)
+			&& !strcasecmp(name, res->name)))
 			break;
 	}
 	list_iterator_destroy(itr);
diff --git a/src/sacctmgr/sacctmgr.h b/src/sacctmgr/sacctmgr.h
index bace8635ada08a271a9bdcb3535d3285f577ea11..ebf2a6b936878f7a8a338d2d297ed2c877c9209d 100644
--- a/src/sacctmgr/sacctmgr.h
+++ b/src/sacctmgr/sacctmgr.h
@@ -305,7 +305,7 @@ extern slurmdb_association_rec_t *sacctmgr_find_association_from_list(
 extern slurmdb_association_rec_t *sacctmgr_find_account_base_assoc_from_list(
 	List assoc_list, char *account, char *cluster);
 extern slurmdb_res_rec_t *sacctmgr_find_res_from_list(
-	List res_list, char *name, char *server);
+	List res_list, uint32_t id, char *name, char *server);
 extern slurmdb_qos_rec_t *sacctmgr_find_qos_from_list(
 	List qos_list, char *name);
 extern slurmdb_user_rec_t *sacctmgr_find_user_from_list(