diff --git a/openbsc/include/openbsc/bsc_msg_filter.h b/openbsc/include/openbsc/bsc_msg_filter.h
index bff326f..80dc37a 100644
--- a/openbsc/include/openbsc/bsc_msg_filter.h
+++ b/openbsc/include/openbsc/bsc_msg_filter.h
@@ -10,7 +10,6 @@
 struct vty;
 
 /* TODO: remove */
-struct bsc_nat;
 struct bsc_nat_parsed;
 struct bsc_connection;
 struct nat_sccp_connection;
@@ -73,12 +72,12 @@
 			struct bsc_nat_reject_cause *cause);
 
 /* IMSI allow/deny handling */
-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);
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_find(struct llist_head *lst, const char *name);
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_get(void *ctx, struct llist_head *lst, const char *name);
 void bsc_nat_acc_lst_delete(struct bsc_nat_acc_lst *lst);
 
 struct bsc_nat_acc_lst_entry *bsc_nat_acc_lst_entry_create(struct bsc_nat_acc_lst *);
 int bsc_nat_lst_check_allow(struct bsc_nat_acc_lst *lst, const char *imsi);
 
-void bsc_nat_lst_vty_init(struct bsc_nat *nat, int node);
+void bsc_nat_lst_vty_init(void *ctx, struct llist_head *lst, int node);
 void bsc_nat_acc_lst_write(struct vty *vty, struct bsc_nat_acc_lst *lst);
diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c
index 947a7b2..cc6c444 100644
--- a/openbsc/src/libfilter/bsc_msg_acc.c
+++ b/openbsc/src/libfilter/bsc_msg_acc.c
@@ -52,29 +52,29 @@
 	return 1;
 }
 
-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_find(struct llist_head *head, const char *name)
 {
 	struct bsc_nat_acc_lst *lst;
 
 	if (!name)
 		return NULL;
 
-	llist_for_each_entry(lst, &nat->access_lists, list)
+	llist_for_each_entry(lst, head, list)
 		if (strcmp(lst->name, name) == 0)
 			return lst;
 
 	return NULL;
 }
 
-struct bsc_nat_acc_lst *bsc_nat_acc_lst_get(struct bsc_nat *nat, const char *name)
+struct bsc_nat_acc_lst *bsc_nat_acc_lst_get(void *ctx, struct llist_head *head, const char *name)
 {
 	struct bsc_nat_acc_lst *lst;
 
-	lst = bsc_nat_acc_lst_find(nat, name);
+	lst = bsc_nat_acc_lst_find(head, name);
 	if (lst)
 		return lst;
 
-	lst = talloc_zero(nat, struct bsc_nat_acc_lst);
+	lst = talloc_zero(ctx, struct bsc_nat_acc_lst);
 	if (!lst) {
 		LOGP(DNAT, LOGL_ERROR, "Failed to allocate access list");
 		return NULL;
@@ -89,7 +89,7 @@
 
 	INIT_LLIST_HEAD(&lst->fltr_list);
 	lst->name = talloc_strdup(lst, name);
-	llist_add_tail(&lst->list, &nat->access_lists);
+	llist_add_tail(&lst->list, head);
 	return lst;
 }
 
diff --git a/openbsc/src/libfilter/bsc_msg_filter.c b/openbsc/src/libfilter/bsc_msg_filter.c
index 8f2e1ca..1f7a14e 100644
--- a/openbsc/src/libfilter/bsc_msg_filter.c
+++ b/openbsc/src/libfilter/bsc_msg_filter.c
@@ -168,8 +168,8 @@
 	}
 
 
-	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);
+	bsc_lst = bsc_nat_acc_lst_find(&bsc->nat->access_lists, bsc->cfg->acc_lst_name);
+	nat_lst = bsc_nat_acc_lst_find(&bsc->nat->access_lists, bsc->nat->acc_lst_name);
 
 
 	if (bsc_lst) {
diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c
index 070a03d..79cf03d 100644
--- a/openbsc/src/libfilter/bsc_msg_vty.c
+++ b/openbsc/src/libfilter/bsc_msg_vty.c
@@ -18,13 +18,13 @@
  */
 
 #include <openbsc/bsc_msg_filter.h>
-#include <openbsc/bsc_nat.h>
 #include <openbsc/gsm_data.h>
 #include <openbsc/vty.h>
 
 #include <osmocom/vty/misc.h>
 
-static struct bsc_nat *_nat;
+static struct llist_head *_acc_lst;
+static void *_ctx;
 
 DEFUN(cfg_lst_no,
       cfg_lst_no_cmd,
@@ -33,7 +33,7 @@
       "The access-list to remove\n")
 {
 	struct bsc_nat_acc_lst *acc;
-	acc = bsc_nat_acc_lst_find(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_find(_acc_lst, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -47,7 +47,7 @@
       SHOW_STR "IMSI access list\n" "Name of the access list\n")
 {
 	struct bsc_nat_acc_lst *acc;
-	acc = bsc_nat_acc_lst_find(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_find(_acc_lst, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -68,7 +68,7 @@
 	struct bsc_nat_acc_lst *acc;
 	struct bsc_nat_acc_lst_entry *entry;
 
-	acc = bsc_nat_acc_lst_get(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_get(_ctx, _acc_lst, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -94,7 +94,7 @@
 	struct bsc_nat_acc_lst *acc;
 	struct bsc_nat_acc_lst_entry *entry;
 
-	acc = bsc_nat_acc_lst_get(_nat, argv[0]);
+	acc = bsc_nat_acc_lst_get(_ctx, _acc_lst, argv[0]);
 	if (!acc)
 		return CMD_WARNING;
 
@@ -127,11 +127,10 @@
 	}
 }
 
-
-void bsc_nat_lst_vty_init(struct bsc_nat *nat, int node)
+void bsc_nat_lst_vty_init(void *ctx, struct llist_head *lst, int node)
 {
-	_nat = nat;
-
+	_ctx = ctx;
+	_acc_lst = lst;
 	install_element_ve(&show_acc_lst_cmd);
 
 	/* access-list */
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
index 89b9742..3a53dd4 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
@@ -1171,7 +1171,7 @@
 	install_element(NAT_NODE, &cfg_nat_ussd_local_cmd);
 	install_element(NAT_NODE, &cfg_nat_use_ipa_for_mgcp_cmd);
 
-	bsc_nat_lst_vty_init(nat, NAT_NODE);
+	bsc_nat_lst_vty_init(nat, &nat->access_lists, NAT_NODE);
 
 	/* number rewriting */
 	install_element(NAT_NODE, &cfg_nat_number_rewrite_cmd);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
index 48626b1..f27453b 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
@@ -416,7 +416,7 @@
 	if (msg_type == GSM0480_MTYPE_REGISTER) {
 
 		/* now check if it is a IMSI we care about */
-		lst = bsc_nat_acc_lst_find(con->bsc->nat,
+		lst = bsc_nat_acc_lst_find(&con->bsc->nat->access_lists,
 					   con->bsc->nat->ussd_lst_name);
 		if (!lst)
 			return 0;
diff --git a/openbsc/tests/bsc-nat/bsc_nat_test.c b/openbsc/tests/bsc-nat/bsc_nat_test.c
index 105fec9..8ee8e39 100644
--- a/openbsc/tests/bsc-nat/bsc_nat_test.c
+++ b/openbsc/tests/bsc-nat/bsc_nat_test.c
@@ -879,8 +879,8 @@
 	bsc->cfg->acc_lst_name = "bsc";
 	nat->acc_lst_name = "nat";
 
-	nat_lst = bsc_nat_acc_lst_get(nat, "nat");
-	bsc_lst = bsc_nat_acc_lst_get(nat, "bsc");
+	nat_lst = bsc_nat_acc_lst_get(nat, &nat->access_lists, "nat");
+	bsc_lst = bsc_nat_acc_lst_get(nat, &nat->access_lists, "bsc");
 
 	bsc_entry = bsc_nat_acc_lst_entry_create(bsc_lst);
 	nat_entry = bsc_nat_acc_lst_entry_create(nat_lst);
