diff --git a/include/ll_map.h b/include/ll_map.h
index 752b827..c4d5c6d 100644
--- a/include/ll_map.h
+++ b/include/ll_map.h
@@ -9,7 +9,5 @@
 extern const char *ll_idx_n2a(unsigned idx, char *buf);
 extern int ll_index_to_type(unsigned idx);
 extern unsigned ll_index_to_flags(unsigned idx);
-extern unsigned ll_index_to_addr(unsigned idx, unsigned char *addr,
-				 unsigned alen);
 
 #endif /* __LL_MAP_H__ */
diff --git a/lib/ll_map.c b/lib/ll_map.c
index 1ca781e..1c33002 100644
--- a/lib/ll_map.c
+++ b/lib/ll_map.c
@@ -31,9 +31,7 @@
 	unsigned	flags;
 	int		index;
 	unsigned short	type;
-	unsigned short	alen;
 	char		name[IFNAMSIZ];
-	unsigned char	addr[20];
 };
 
 #define IDXMAP_SIZE	1024
@@ -79,16 +77,6 @@
 
 	im->type = ifi->ifi_type;
 	im->flags = ifi->ifi_flags;
-	if (tb[IFLA_ADDRESS]) {
-		int alen;
-		im->alen = alen = RTA_PAYLOAD(tb[IFLA_ADDRESS]);
-		if (alen > sizeof(im->addr))
-			alen = sizeof(im->addr);
-		memcpy(im->addr, RTA_DATA(tb[IFLA_ADDRESS]), alen);
-	} else {
-		im->alen = 0;
-		memset(im->addr, 0, sizeof(im->addr));
-	}
 	strcpy(im->name, RTA_DATA(tb[IFLA_IFNAME]));
 	return 0;
 }
@@ -141,27 +129,6 @@
 	return 0;
 }
 
-unsigned ll_index_to_addr(unsigned idx, unsigned char *addr,
-			  unsigned alen)
-{
-	const struct ll_cache *im;
-
-	if (idx == 0)
-		return 0;
-
-	for (im = idxhead(idx); im; im = im->idx_next) {
-		if (im->index == idx) {
-			if (alen > sizeof(im->addr))
-				alen = sizeof(im->addr);
-			if (alen > im->alen)
-				alen = im->alen;
-			memcpy(addr, im->addr, alen);
-			return alen;
-		}
-	}
-	return 0;
-}
-
 unsigned ll_name_to_index(const char *name)
 {
 	static char ncache[IFNAMSIZ];
