diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c
index 1aef27e..4b0165c 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c
@@ -243,7 +243,7 @@
 	if (!msg)
 		return;
 
-	ipaccess_prepend_header(msg, IPAC_PROTO_SCCP);
+	ipa_prepend_header(msg, IPAC_PROTO_SCCP);
 	queue_for_msc(conn->msc_con, msg);
 }
 
@@ -319,7 +319,7 @@
 	rlc->destination_local_reference = *dst;
 	rlc->source_local_reference = *src;
 
-	ipaccess_prepend_header(msg, IPAC_PROTO_SCCP);
+	ipa_prepend_header(msg, IPAC_PROTO_SCCP);
 
 	queue_for_msc(msc_con, msg);
 }
@@ -335,7 +335,7 @@
 
 void bsc_nat_send_mgcp_to_msc(struct bsc_nat *nat, struct msgb *msg)
 {
-	ipaccess_prepend_header(msg, IPAC_PROTO_MGCP_OLD);
+	ipa_prepend_header(msg, IPAC_PROTO_MGCP_OLD);
 	queue_for_msc(nat->msc_con, msg);
 }
 
@@ -359,7 +359,7 @@
 	if (!msg)
 		return;
 
-	ipaccess_prepend_header(msg, IPAC_PROTO_IPACCESS);
+	ipa_prepend_header(msg, IPAC_PROTO_IPACCESS);
 	queue_for_msc(msc_con, msg);
 }
 
@@ -433,7 +433,7 @@
 	if (!rlsd)
 		LOGP(DNAT, LOGL_ERROR, "Failed to create RLSD message.\n");
 	else {
-		ipaccess_prepend_header(rlsd, IPAC_PROTO_SCCP);
+		ipa_prepend_header(rlsd, IPAC_PROTO_SCCP);
 		queue_for_msc(con->msc_con, rlsd);
 	}
 	con->con_local = NAT_CON_END_LOCAL;
@@ -828,7 +828,7 @@
 
 	/* initialize the networking. This includes sending a GSM08.08 message */
 	if (hh->proto == IPAC_PROTO_IPACCESS) {
-		ipaccess_rcvmsg_base(msg, bfd);
+		ipa_ccm_rcvmsg_base(msg, bfd);
 		if (msg->l2h[0] == IPAC_MSGT_ID_ACK)
 			initialize_msc_if_needed(msc_con);
 		else if (msg->l2h[0] == IPAC_MSGT_ID_GET)
@@ -1180,7 +1180,7 @@
 		if (msg->l2h[0] == IPAC_MSGT_ID_RESP) {
 			struct tlv_parsed tvp;
 			int ret;
-			ret = ipaccess_idtag_parse(&tvp,
+			ret = ipa_ccm_idtag_parse(&tvp,
 					     (unsigned char *) msg->l2h + 2,
 					     msgb_l2len(msg) - 2);
 			if (ret < 0) {
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
index 54fc573..ca5670c 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_rewrite.c
@@ -32,6 +32,7 @@
 #include <osmocom/core/linuxlist.h>
 #include <osmocom/core/talloc.h>
 #include <osmocom/gsm/gsm0808.h>
+#include <osmocom/gsm/ipa.h>
 
 #include <osmocom/gsm/protocol/gsm_08_08.h>
 #include <osmocom/gsm/protocol/gsm_04_11.h>
@@ -614,7 +615,7 @@
 		return msg;
 	}
 
-	ipaccess_prepend_header(sccp, IPAC_PROTO_SCCP);
+	ipa_prepend_header(sccp, IPAC_PROTO_SCCP);
 
 	/* the parsed hangs off from msg but it needs to survive */
 	talloc_steal(sccp, parsed);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
index 236a0fb..14ea308 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c
@@ -32,6 +32,7 @@
 #include <osmocom/core/linuxlist.h>
 #include <osmocom/core/talloc.h>
 #include <osmocom/gsm/gsm0808.h>
+#include <osmocom/gsm/ipa.h>
 
 #include <osmocom/gsm/protocol/gsm_08_08.h>
 #include <osmocom/gsm/protocol/gsm_04_11.h>
@@ -347,7 +348,7 @@
 int bsc_do_write(struct osmo_wqueue *queue, struct msgb *msg, int proto)
 {
 	/* prepend the header */
-	ipaccess_prepend_header(msg, proto);
+	ipa_prepend_header(msg, proto);
 	return bsc_write_msg(queue, msg);
 }
 
diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
index 5f073bf..ac5a9f5 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
@@ -29,6 +29,7 @@
 #include <osmocom/gsm/gsm0480.h>
 #include <osmocom/core/talloc.h>
 #include <osmocom/gsm/tlv.h>
+#include <osmocom/gsm/ipa.h>
 
 #include <osmocom/sccp/sccp.h>
 
@@ -140,7 +141,7 @@
 		if (msg->l2h[0] == IPAC_MSGT_ID_RESP) {
 			struct tlv_parsed tvp;
 			int ret;
-			ret = ipaccess_idtag_parse(&tvp,
+			ret = ipa_ccm_idtag_parse(&tvp,
 					     (unsigned char *) msg->l2h + 2,
 					     msgb_l2len(msg) - 2);
 			if (ret < 0) {
