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) {
