diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c
index e6c3237..0555ff3 100644
--- a/src/libosmo-mgcp-client/mgcp_client_pool.c
+++ b/src/libosmo-mgcp-client/mgcp_client_pool.c
@@ -118,6 +118,19 @@
 	pool->mgcp_client_single = mgcp_client;
 }
 
+/*! Lookup the selected MGCP client config by its reference number */
+struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr)
+{
+	struct mgcp_client_pool_member *pool_member;
+
+	llist_for_each_entry(pool_member, &pool->member_list, list) {
+		if (pool_member->nr == nr)
+			return pool_member;
+	}
+
+	return NULL;
+}
+
 /* Not every pool member may have a functional MGCP client, we will run through the pool once until we meet a
  * pool member that is suitable (has a client, is not blocked, has a low load). */
 static struct mgcp_client_pool_member *mgcp_client_pool_pick(struct mgcp_client_pool *pool)
diff --git a/src/libosmo-mgcp-client/mgcp_client_vty.c b/src/libosmo-mgcp-client/mgcp_client_vty.c
index f85dd3f..748042f 100644
--- a/src/libosmo-mgcp-client/mgcp_client_vty.c
+++ b/src/libosmo-mgcp-client/mgcp_client_vty.c
@@ -337,29 +337,13 @@
 	return CMD_SUCCESS;
 }
 
-/* Lookup the selected MGCP client config by its reference number */
-static struct mgcp_client_pool_member *pool_member_by_nr(unsigned int nr)
-{
-	struct mgcp_client_pool_member *pool_member = NULL;
-	struct mgcp_client_pool_member *pool_member_tmp;
-
-	llist_for_each_entry(pool_member_tmp, &global_mgcp_client_pool->member_list, list) {
-		if (pool_member_tmp->nr == nr) {
-			pool_member = pool_member_tmp;
-			break;
-		}
-	}
-
-	return pool_member;
-}
-
 DEFUN_ATTR(cfg_mgw,
 	   cfg_mgw_cmd, "mgw <0-255>", "Select a MGCP client config to setup\n" "reference number\n", CMD_ATTR_IMMEDIATE)
 {
 	int nr = atoi(argv[0]);
 	struct mgcp_client_pool_member *pool_member;
 
-	pool_member = pool_member_by_nr(nr);
+	pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr);
 	if (!pool_member) {
 		pool_member = talloc_zero(global_mgcp_client_pool, struct mgcp_client_pool_member);
 		OSMO_ASSERT(pool_member);
@@ -382,7 +366,7 @@
 	int nr = atoi(argv[0]);
 	struct mgcp_client_pool_member *pool_member;
 
-	pool_member = pool_member_by_nr(nr);
+	pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr);
 	if (!pool_member) {
 		vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE);
 		return CMD_WARNING;
@@ -412,7 +396,7 @@
 	int nr = atoi(argv[0]);
 	struct mgcp_client_pool_member *pool_member = NULL;
 
-	pool_member = pool_member_by_nr(nr);
+	pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr);
 	if (!pool_member) {
 		vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE);
 		return CMD_WARNING;
@@ -466,7 +450,7 @@
 	int nr = atoi(argv[0]);
 	struct mgcp_client_pool_member *pool_member = NULL;
 
-	pool_member = pool_member_by_nr(nr);
+	pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr);
 	if (!pool_member) {
 		vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE);
 		return CMD_WARNING;
@@ -483,7 +467,7 @@
 	int nr = atoi(argv[0]);
 	struct mgcp_client_pool_member *pool_member = NULL;
 
-	pool_member = pool_member_by_nr(nr);
+	pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr);
 	if (!pool_member) {
 		vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE);
 		return CMD_WARNING;
