diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c
index ebd291b..116c612 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c
@@ -426,7 +426,7 @@
  */
 static void bsc_send_con_release(struct bsc_connection *bsc,
 		struct nat_sccp_connection *con,
-		struct bsc_nat_reject_cause *cause)
+		struct bsc_filter_reject_cause *cause)
 {
 	struct msgb *rlsd;
 	/* 1. release the network */
@@ -476,7 +476,7 @@
 
 static void bsc_send_con_refuse(struct bsc_connection *bsc,
 			struct bsc_nat_parsed *parsed, int con_type,
-			struct bsc_nat_reject_cause *cause)
+			struct bsc_filter_reject_cause *cause)
 {
 	struct msgb *payload;
 	struct msgb *refuse;
@@ -1026,7 +1026,7 @@
 	struct bsc_connection *con_bsc = NULL;
 	int con_type;
 	struct bsc_nat_parsed *parsed;
-	struct bsc_nat_reject_cause cause;
+	struct bsc_filter_reject_cause cause;
 
 	/* Parse and filter messages */
 	parsed = bsc_nat_parse(msg);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
index 502bddd..596ecae 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c
@@ -503,7 +503,7 @@
 		int rc;
 		struct osmo_config_list *rewr = NULL;
 		rewr = osmo_config_list_parse(_nat, _nat->imsi_black_list_fn);
-		rc = bsc_nat_barr_adapt(_nat, &_nat->imsi_black_list, rewr);
+		rc = bsc_filter_barr_adapt(_nat, &_nat->imsi_black_list, rewr);
 		if (rc != 0) {
 			vty_out(vty, "%%There was an error parsing the list."
 				" Please see the error log.%s", VTY_NEWLINE);
@@ -513,7 +513,7 @@
 		return CMD_SUCCESS;
 	}
 
-	bsc_nat_barr_adapt(_nat, &_nat->imsi_black_list, NULL);
+	bsc_filter_barr_adapt(_nat, &_nat->imsi_black_list, NULL);
 	return CMD_SUCCESS;
 }
 
@@ -524,7 +524,7 @@
 {
 	talloc_free(_nat->imsi_black_list_fn);
 	_nat->imsi_black_list_fn = NULL;
-	bsc_nat_barr_adapt(_nat, &_nat->imsi_black_list, NULL);
+	bsc_filter_barr_adapt(_nat, &_nat->imsi_black_list, NULL);
 	return CMD_SUCCESS;
 }
 
@@ -862,8 +862,8 @@
 	vty_out(vty, "IMSIs barred from the network:%s", VTY_NEWLINE);
 
 	for (node = rb_first(&_nat->imsi_black_list); node; node = rb_next(node)) {
-		struct bsc_nat_barr_entry *entry;
-		entry = rb_entry(node, struct bsc_nat_barr_entry, node);
+		struct bsc_filter_barr_entry *entry;
+		entry = rb_entry(node, struct bsc_filter_barr_entry, node);
 
 		vty_out(vty, " IMSI(%s) CM-Reject-Cause(%d) LU-Reject-Cause(%d)%s",
 			entry->imsi, entry->cm_reject_cause, entry->lu_reject_cause,
