diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c
index c1bed6c..7b9450c 100644
--- a/src/gb/gprs_ns2_fr.c
+++ b/src/gb/gprs_ns2_fr.c
@@ -106,6 +106,7 @@
 	if (!nsvc->priv)
 		return;
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(nsvc->bind));
 	talloc_free(nsvc->priv);
 	nsvc->priv = NULL;
 }
@@ -137,6 +138,7 @@
 {
 	struct priv_bind *priv;
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
 	if (!bind)
 		return;
 
@@ -158,6 +160,7 @@
 	if (!priv)
 		return NULL;
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
 	nsvc->priv = priv;
 	priv->dlci = dlci;
 	priv->dlc = osmo_fr_dlc_alloc(privb->link, dlci);
@@ -180,6 +183,7 @@
 	struct gprs_ns2_vc *nsvc;
 	struct priv_vc *vcpriv;
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
 	if (!result)
 		return -EINVAL;
 
@@ -740,6 +744,7 @@
 	struct priv_bind *bpriv = bind->priv;
 	char idbuf[64];
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
 	nsvc = gprs_ns2_fr_nsvc_by_dlci(bind, dlci);
 	if (nsvc) {
 		goto err;
@@ -780,7 +785,10 @@
 {
 	bool created_nse = false;
 	struct gprs_ns2_vc *nsvc = NULL;
-	struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei);
+	struct gprs_ns2_nse *nse;
+
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
+	nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei);
 	if (!nse) {
 		nse = gprs_ns2_create_nse(bind->nsi, nsei, GPRS_NS2_LL_FR, NS2_DIALECT_STATIC_RESETBLOCK);
 		if (!nse)
@@ -812,6 +820,7 @@
 	struct gprs_ns2_vc *nsvc;
 	struct priv_vc *vcpriv;
 
+	OSMO_ASSERT(gprs_ns2_is_fr_bind(bind));
 	llist_for_each_entry(nsvc, &bind->nsvc, blist) {
 		vcpriv = nsvc->priv;
 
diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c
index d93b66d..1037b19 100644
--- a/src/gb/gprs_ns2_udp.c
+++ b/src/gb/gprs_ns2_udp.c
@@ -63,6 +63,8 @@
 	if (!bind)
 		return;
 
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
+
 	priv = bind->priv;
 
 	osmo_fd_close(&priv->fd);
@@ -74,6 +76,7 @@
 	if (!nsvc->priv)
 		return;
 
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(nsvc->bind));
 	talloc_free(nsvc->priv);
 	nsvc->priv = NULL;
 }
@@ -116,6 +119,8 @@
 	struct gprs_ns2_vc *nsvc;
 	struct priv_vc *vcpriv;
 
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
+
 	llist_for_each_entry(nsvc, &bind->nsvc, blist) {
 		vcpriv = nsvc->priv;
 		if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family)
@@ -397,6 +402,8 @@
 	char *sockaddr_str;
 	char idbuf[64];
 
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
+
 	vc_mode = gprs_ns2_dialect_to_vc_mode(nse->dialect);
 	if ((int) vc_mode == -1) {
 		LOGP(DLNS, LOGL_ERROR, "Can not derive vc mode from dialect %d. Maybe libosmocore is too old.\n",
@@ -492,6 +499,7 @@
 const struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind)
 {
 	struct priv_bind *priv;
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
 
 	priv = bind->priv;
 	return &priv->addr;
@@ -509,6 +517,7 @@
 	struct priv_bind *priv;
 	int rc = 0;
 
+	OSMO_ASSERT(gprs_ns2_is_ip_bind(bind));
 	priv = bind->priv;
 
 	if (dscp != priv->dscp) {
