diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h
index 3b950e1..43b6600 100644
--- a/openbsc/include/openbsc/bsc_nat.h
+++ b/openbsc/include/openbsc/bsc_nat.h
@@ -204,7 +204,7 @@
 	} msc;
 };
 
-struct bsc_nat_access_list {
+struct bsc_nat_acc_lst {
 	struct llist_head list;
 
 	/* the name of the list */
@@ -324,8 +324,8 @@
 
 /* IMSI allow/deny handling */
 void bsc_parse_reg(void *ctx, regex_t *reg, char **imsi, int argc, const char **argv);
-struct bsc_nat_access_list *bsc_nat_accs_list_find(struct bsc_nat *nat, const char *name);
-struct bsc_nat_access_list *bsc_nat_accs_list_get(struct bsc_nat *nat, const char *name);
-void bsc_nat_accs_list_delete(struct bsc_nat_access_list *lst);
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_find(struct bsc_nat *nat, const char *name);
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_get(struct bsc_nat *nat, const char *name);
+void bsc_nat_acc_lst_delete(struct bsc_nat_acc_lst *lst);
 
 #endif
diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c
index 71d5722..663d8bc 100644
--- a/openbsc/src/nat/bsc_nat_utils.c
+++ b/openbsc/src/nat/bsc_nat_utils.c
@@ -205,11 +205,11 @@
 	 * 3.) Reject if the IMSI not allowed at the global level.
 	 * 4.) Allow directly if the IMSI is allowed at the global level
 	 */
-	struct bsc_nat_access_list *nat_lst = NULL;
-	struct bsc_nat_access_list *bsc_lst = NULL;
+	struct bsc_nat_acc_lst *nat_lst = NULL;
+	struct bsc_nat_acc_lst *bsc_lst = NULL;
 
-	bsc_lst = bsc_nat_accs_list_find(bsc->nat, bsc->cfg->acc_lst_name);
-	nat_lst = bsc_nat_accs_list_find(bsc->nat, bsc->nat->acc_lst_name);
+	bsc_lst = bsc_nat_acc_lst_find(bsc->nat, bsc->cfg->acc_lst_name);
+	nat_lst = bsc_nat_acc_lst_find(bsc->nat, bsc->nat->acc_lst_name);
 
 
 	/* 1. BSC deny */
@@ -412,9 +412,9 @@
 	return con_types[type];
 }
 
-struct bsc_nat_access_list *bsc_nat_accs_list_find(struct bsc_nat *nat, const char *name)
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_find(struct bsc_nat *nat, const char *name)
 {
-	struct bsc_nat_access_list *lst;
+	struct bsc_nat_acc_lst *lst;
 
 	if (!name)
 		return NULL;
@@ -426,15 +426,15 @@
 	return NULL;
 }
 
-struct bsc_nat_access_list *bsc_nat_accs_list_get(struct bsc_nat *nat, const char *name)
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_get(struct bsc_nat *nat, const char *name)
 {
-	struct bsc_nat_access_list *lst;
+	struct bsc_nat_acc_lst *lst;
 
-	lst = bsc_nat_accs_list_find(nat, name);
+	lst = bsc_nat_acc_lst_find(nat, name);
 	if (lst)
 		return lst;
 
-	lst = talloc_zero(nat, struct bsc_nat_access_list);
+	lst = talloc_zero(nat, struct bsc_nat_acc_lst);
 	if (!lst) {
 		LOGP(DNAT, LOGL_ERROR, "Failed to allocate access list");
 		return NULL;
@@ -445,7 +445,7 @@
 	return lst;
 }
 
-void bsc_nat_accs_list_delete(struct bsc_nat_access_list *lst)
+void bsc_nat_acc_lst_delete(struct bsc_nat_acc_lst *lst)
 {
 	llist_del(&lst->list);
 	talloc_free(lst);
diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c
index 3f2d7ac..fdd7886 100644
--- a/openbsc/src/nat/bsc_nat_vty.c
+++ b/openbsc/src/nat/bsc_nat_vty.c
@@ -51,7 +51,7 @@
 
 static int config_write_nat(struct vty *vty)
 {
-	struct bsc_nat_access_list *lst;
+	struct bsc_nat_acc_lst *lst;
 
 	vty_out(vty, "nat%s", VTY_NEWLINE);
 	vty_out(vty, " msc ip %s%s", _nat->msc_ip, VTY_NEWLINE);
@@ -386,9 +386,9 @@
       "The name of the access-list\n"
       "The regexp of allowed IMSIs\n")
 {
-	struct bsc_nat_access_list *acc;
+	struct bsc_nat_acc_lst *acc;
 
-	acc = bsc_nat_accs_list_get(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_get(_nat, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -403,9 +403,9 @@
       "The name of the access-list\n"
       "The regexp of to be denied IMSIs\n")
 {
-	struct bsc_nat_access_list *acc;
+	struct bsc_nat_acc_lst *acc;
 
-	acc = bsc_nat_accs_list_get(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_get(_nat, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -420,12 +420,12 @@
       NO_STR "Remove an access-list by name\n"
       "The access-list to remove\n")
 {
-	struct bsc_nat_access_list *acc;
-	acc = bsc_nat_accs_list_find(_nat, argv[0]);
+	struct bsc_nat_acc_lst *acc;
+	acc = bsc_nat_acc_lst_find(_nat, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
-	bsc_nat_accs_list_delete(acc);
+	bsc_nat_acc_lst_delete(acc);
 	return CMD_SUCCESS;
 }
 
diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c
index 87018d4..4a43119 100644
--- a/openbsc/tests/bsc-nat/bsc_nat_test.c
+++ b/openbsc/tests/bsc-nat/bsc_nat_test.c
@@ -640,7 +640,7 @@
 	int i, res, contype;
 	struct msgb *msg = msgb_alloc(4096, "test_cr_filter");
 	struct bsc_nat_parsed *parsed;
-	struct bsc_nat_access_list *nat_lst, *bsc_lst;
+	struct bsc_nat_acc_lst *nat_lst, *bsc_lst;
 
 	struct bsc_nat *nat = bsc_nat_alloc();
 	struct bsc_connection *bsc = bsc_connection_alloc(nat);
@@ -652,8 +652,8 @@
 		msgb_reset(msg);
 		copy_to_msg(msg, cr_filter[i].data, cr_filter[i].length);
 
-		nat_lst = bsc_nat_accs_list_get(nat, "nat");
-		bsc_lst = bsc_nat_accs_list_get(nat, "bsc");
+		nat_lst = bsc_nat_acc_lst_get(nat, "nat");
+		bsc_lst = bsc_nat_acc_lst_get(nat, "bsc");
 
 		bsc_parse_reg(nat_lst, &nat_lst->imsi_deny_re, &nat_lst->imsi_deny,
 			      cr_filter[i].nat_imsi_deny ? 1 : 0,
