Index: uspace/lib/c/generic/inet/addr.c
===================================================================
--- uspace/lib/c/generic/inet/addr.c	(revision 1f97352e85e078869980962995e23044a6312e14)
+++ uspace/lib/c/generic/inet/addr.c	(revision 30c5d1347a6239321b40dbb4731798741ddb65f7)
@@ -260,4 +260,19 @@
 }
 
+int inet_naddr_compare(const inet_naddr_t *naddr, const inet_addr_t *addr)
+{
+	if (naddr->family != addr->family)
+		return 0;
+	
+	switch (naddr->family) {
+	case AF_INET:
+		return (naddr->addr == addr->addr);
+	case AF_INET6:
+		return addr128_compare(naddr->addr6, addr->addr6);
+	default:
+		return 0;
+	}
+}
+
 int inet_naddr_compare_mask(const inet_naddr_t *naddr, const inet_addr_t *addr)
 {
Index: uspace/lib/c/include/inet/addr.h
===================================================================
--- uspace/lib/c/include/inet/addr.h	(revision 1f97352e85e078869980962995e23044a6312e14)
+++ uspace/lib/c/include/inet/addr.h	(revision 30c5d1347a6239321b40dbb4731798741ddb65f7)
@@ -97,4 +97,5 @@
 extern int inet_addr_is_any(const inet_addr_t *);
 
+extern int inet_naddr_compare(const inet_naddr_t *, const inet_addr_t *);
 extern int inet_naddr_compare_mask(const inet_naddr_t *, const inet_addr_t *);
 
Index: uspace/srv/net/inetsrv/addrobj.c
===================================================================
--- uspace/srv/net/inetsrv/addrobj.c	(revision 1f97352e85e078869980962995e23044a6312e14)
+++ uspace/srv/net/inetsrv/addrobj.c	(revision 30c5d1347a6239321b40dbb4731798741ddb65f7)
@@ -119,9 +119,21 @@
 		    inet_addrobj_t, addr_list);
 		
-		if (inet_naddr_compare_mask(&naddr->naddr, addr)) {
-			fibril_mutex_unlock(&addr_list_lock);
-			log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find: found %p",
-			    naddr);
-			return naddr;
+		switch (find) {
+		case iaf_net:
+			if (inet_naddr_compare_mask(&naddr->naddr, addr)) {
+				fibril_mutex_unlock(&addr_list_lock);
+				log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find: found %p",
+				    naddr);
+				return naddr;
+			}
+			break;
+		case iaf_addr:
+			if (inet_naddr_compare(&naddr->naddr, addr)) {
+				fibril_mutex_unlock(&addr_list_lock);
+				log_msg(LOG_DEFAULT, LVL_DEBUG, "inet_addrobj_find: found %p",
+				    naddr);
+				return naddr;
+			}
+			break;
 		}
 	}
