diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h
index 68484c1..cd2de96 100644
--- a/include/osmocom/gprs/gprs_ns2.h
+++ b/include/osmocom/gprs/gprs_ns2.h
@@ -131,10 +131,9 @@
 struct osmo_sockaddr *gprs_ns2_ip_bind_sockaddr(struct gprs_ns2_vc_bind *bind);
 int gprs_ns2_is_ip_bind(struct gprs_ns2_vc_bind *bind);
 int gprs_ns2_ip_bind_set_dscp(struct gprs_ns2_vc_bind *bind, int dscp);
-int gprs_ns2_find_vc_by_sockaddr(
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(
 		struct gprs_ns2_vc_bind *bind,
-		struct osmo_sockaddr *saddr,
-		struct gprs_ns2_vc **result);
+		struct osmo_sockaddr *saddr);
 
 int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi,
 			struct osmo_sockaddr *local,
@@ -142,8 +141,9 @@
 			struct gprs_ns2_vc_bind **result);
 int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind);
 
-struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr(struct gprs_ns2_nse *nsei,
-					      struct osmo_sockaddr *sockaddr);
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse(
+		struct gprs_ns2_nse *nse,
+		struct osmo_sockaddr *sockaddr);
 void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse);
 const char *gprs_ns2_cause_str(int cause);
 const char *gprs_ns2_ll_str(struct gprs_ns2_vc *nsvc);
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 57a08d1..835c22a 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -824,7 +824,7 @@
  *  \param[in] nse NS Entity in which to search
  *  \param[in] sockaddr socket address to search for
  *  \return NS-VC matching sockaddr; NULL if none found */
-struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr(struct gprs_ns2_nse *nse,
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse(struct gprs_ns2_nse *nse,
 					      struct osmo_sockaddr *sockaddr)
 {
 	struct gprs_ns2_vc *nsvc;
diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c
index 812200d..753ac4d 100644
--- a/src/gb/gprs_ns2_sns.c
+++ b/src/gb/gprs_ns2_sns.c
@@ -179,7 +179,7 @@
 	sa.u.sin.sin_port = ip4->udp_port;
 	sa.u.sin.sin_family = AF_INET;
 
-	return gprs_ns2_nsvc_by_sockaddr(nse, &sa);
+	return gprs_ns2_nsvc_by_sockaddr_nse(nse, &sa);
 }
 
 static struct gprs_ns2_vc *nsvc_by_ip6_elem(struct gprs_ns2_nse *nse,
@@ -191,7 +191,7 @@
 	sa.u.sin6.sin6_port = ip6->udp_port;
 	sa.u.sin6.sin6_family = AF_INET;
 
-	return gprs_ns2_nsvc_by_sockaddr(nse, &sa);
+	return gprs_ns2_nsvc_by_sockaddr_nse(nse, &sa);
 }
 
 /*! called when a nsvc is beeing freed */
diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c
index bb421a7..9994a72 100644
--- a/src/gb/gprs_ns2_udp.c
+++ b/src/gb/gprs_ns2_udp.c
@@ -81,16 +81,12 @@
 /*! Find a NS-VC by its remote socket address.
  *  \param[in] bind in which to search
  *  \param[in] saddr remote peer socket adddress to search
- *  \param[out] result pointer to result
- *  \returns 0 on success; 1 if no NS-VC was found; negative on error */
-int gprs_ns2_find_vc_by_sockaddr(struct gprs_ns2_vc_bind *bind, struct osmo_sockaddr *saddr, struct gprs_ns2_vc **result)
+ *  \returns NS-VC matching sockaddr; NULL if none found */
+struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(struct gprs_ns2_vc_bind *bind, struct osmo_sockaddr *saddr)
 {
 	struct gprs_ns2_vc *nsvc;
 	struct priv_vc *vcpriv;
 
-	if (!result)
-		return -EINVAL;
-
 	llist_for_each_entry(nsvc, &bind->nsvc, blist) {
 		vcpriv = nsvc->priv;
 		if (vcpriv->remote.u.sa.sa_family != saddr->u.sa.sa_family)
@@ -98,11 +94,10 @@
 		if (osmo_sockaddr_cmp(&vcpriv->remote, saddr))
 			continue;
 
-		*result = nsvc;
-		return 0;
+		return nsvc;
 	}
 
-	return 1;
+	return NULL;
 }
 
 static inline int nsip_sendmsg(struct gprs_ns2_vc_bind *bind,
@@ -194,8 +189,8 @@
 		return -EINVAL;
 
 	/* check if a vc is available */
-	rc = gprs_ns2_find_vc_by_sockaddr(bind, &saddr, &nsvc);
-	if (rc) {
+	nsvc = gprs_ns2_nsvc_by_sockaddr_bind(bind, &saddr);
+	if (!nsvc) {
 		/* VC not found */
 		rc = ns2_create_vc(bind, msg, "newconnection", &reject, &nsvc);
 		switch (rc) {
