diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h
index 13d1b09..49213a5 100644
--- a/openbsc/include/openbsc/bsc_nat.h
+++ b/openbsc/include/openbsc/bsc_nat.h
@@ -79,6 +79,7 @@
 
 	/* mgcp related code */
 	char *_endpoint_status;
+	int number_endpoints;
 	int last_endpoint;
 
 	/* a back pointer */
diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index d814f0d..f002926 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -48,6 +48,7 @@
 	if (!con->cfg)
 		return -1;
 
+	con->number_endpoints = 31 * con->cfg->number_multiplexes;
 	con->_endpoint_status = talloc_zero_array(con, char,
 						  (32 * con->cfg->number_multiplexes) + 1);
 	return con->_endpoint_status == NULL;
@@ -55,7 +56,7 @@
 
 static int bsc_assign_endpoint(struct bsc_connection *bsc, struct sccp_connections *con)
 {
-	const int number_endpoints = 31 * bsc->cfg->number_multiplexes;
+	const int number_endpoints = bsc->number_endpoints;
 	int i;
 
 	for (i = 1; i <= number_endpoints; ++i) {
diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c
index 01bee74..2aefe9b 100644
--- a/openbsc/src/nat/bsc_nat_vty.c
+++ b/openbsc/src/nat/bsc_nat_vty.c
@@ -113,6 +113,7 @@
 		vty_out(vty, "  description %s%s", bsc->description, VTY_NEWLINE);
 	if (bsc->acc_lst_name)
 		vty_out(vty, "  access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE);
+	vty_out(vty, "  number-multiplexes %d%s", bsc->number_multiplexes, VTY_NEWLINE);
 }
 
 static int config_write_bsc(struct vty *vty)
@@ -183,7 +184,7 @@
 			continue;
 
 		vty_out(vty, "MGCP Status for %d%s", con->cfg->nr, VTY_NEWLINE);
-		endpoints = 31 * con->cfg->number_multiplexes;
+		endpoints = con->number_endpoints;
 		for (i = 1; i <= endpoints; ++i)
 			vty_out(vty, " Endpoint 0x%x %s%s", i,
 				con->_endpoint_status[i] == 0 ? "free" : "allocated",
@@ -630,6 +631,16 @@
 	return CMD_SUCCESS;
 }
 
+DEFUN(cfg_bsc_nr_multip, cfg_bsc_nr_multip_cmd,
+      "number-multiplexes <1-1>",
+      "Number of multiplexes on a BSC\n" "Number of ports\n")
+{
+	struct bsc_config *conf = vty->index;
+
+	conf->number_multiplexes = atoi(argv[0]);
+	return CMD_SUCCESS;
+}
+
 DEFUN(cfg_bsc_paging,
       cfg_bsc_paging_cmd,
       "paging forbidden (0|1)",
@@ -730,6 +741,7 @@
 	install_element(NAT_BSC_NODE, &cfg_bsc_paging_cmd);
 	install_element(NAT_BSC_NODE, &cfg_bsc_desc_cmd);
 	install_element(NAT_BSC_NODE, &cfg_bsc_acc_lst_name_cmd);
+	install_element(NAT_BSC_NODE, &cfg_bsc_nr_multip_cmd);
 
 	mgcp_vty_init();
 
