diff --git a/src/cmdu.h b/src/cmdu.h
index e1b380c9b5a73c219a758961e22b19505ac81351..bc3d757af294c88ea6e23a7afa3f766bbc976b6a 100644
--- a/src/cmdu.h
+++ b/src/cmdu.h
@@ -20,8 +20,8 @@
 #include <sys/time.h>
 #include <libubox/list.h>
 
+#include <easy/easy.h>
 #include "bufutil.h"
-#include "hlist.h"
 
 /** struct cmdu_header - IEEE-1905 CMDU header */
 struct cmdu_header {
diff --git a/src/cmdu_ackq.h b/src/cmdu_ackq.h
index 80d7aa1239fefbf9fd1c909cd391b8dc1bc828e7..6704210e5d956f3a3ef9ab40ffa17acb3160445c 100644
--- a/src/cmdu_ackq.h
+++ b/src/cmdu_ackq.h
@@ -14,7 +14,7 @@
 #define CMDU_ACKQ_H
 
 
-#include "hlist.h"
+#include <easy/easy.h>
 
 #define CMDU_BACKLOG_MAX	128
 
diff --git a/src/cmdufrag.h b/src/cmdufrag.h
index c135928063bf60ed9e6ef1fa30397685a008902d..065c15729e268d6955ba66c76c131d1f530945bb 100644
--- a/src/cmdufrag.h
+++ b/src/cmdufrag.h
@@ -19,8 +19,9 @@
 #include <sys/time.h>
 #include <libubox/list.h>
 
+#include <easy/easy.h>
+
 #include "bufutil.h"
-#include "hlist.h"
 #include "cmdu.h"
 
 
diff --git a/src/cmduqueue.h b/src/cmduqueue.h
index 1eaec8f77de641abc49484f9c9ad4f37d7c92495..4f7bd54ed7ec05f894f778ef59f340aaafcc70cc 100644
--- a/src/cmduqueue.h
+++ b/src/cmduqueue.h
@@ -18,7 +18,7 @@
 #include <sys/time.h>
 #include <libubox/list.h>
 
-#include "hlist.h"
+#include <easy/easy.h>
 
 
 
diff --git a/src/hlist.h b/src/hlist.h
deleted file mode 100644
index 100fca165b2cb496af800ed0e72a1d221cf23173..0000000000000000000000000000000000000000
--- a/src/hlist.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * hlist.h - stripped down version of hash list implementation using
- * singly linked list.
- * Doubly linked list is wastage of space for big hash-tables. If cost of
- * iterating a hash list is significant, it means the hash function is NOT
- * formulated well and should be revisited.
- *
- * Copyright (C) 2021 IOPSYS Software Solutions AB. All rights reserved.
- *
- * Author: anjan.chanda@iopsys.eu
- *
- */
-
-#ifndef _HLIST_H
-#define _HLIST_H
-
-struct hlist_node {
-	struct hlist_node *next;
-};
-
-struct hlist_head {
-	struct hlist_node *first;
-};
-
-#define HLIST_HEAD_INIT(name) { &(name) }
-
-#define HLIST_HEAD(name) struct hlist_head name = HLIST_HEAD_INIT(name)
-
-static inline void INIT_HLIST_HEAD(struct hlist_head *h)
-{
-	h->first = NULL;
-}
-
-static inline void INIT_HLIST_NODE(struct hlist_node *n)
-{
-	n->next = NULL;
-}
-
-static inline int hlist_empty(const struct hlist_head *h)
-{
-	return !h->first;
-}
-
-static inline void __hlist_del(struct hlist_node *prev, struct hlist_node *n)
-{
-	prev->next = n->next;
-	n->next = NULL;
-}
-
-static inline void hlist_del(struct hlist_node *n, struct hlist_head *h)
-{
-	struct hlist_node *p;
-
-	if (h->first == n) {
-		h->first = n->next;
-		n->next = NULL;
-		return;
-	}
-
-	for (p = h->first; p; p = p->next) {
-		if (p->next == n)
-			__hlist_del(p, n);
-	}
-}
-
-static inline void _hlist_add(struct hlist_node *_new, struct hlist_head *h)
-{
-	_new->next = h->first;
-	h->first = _new;
-}
-
-static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h)
-{
-	_hlist_add(n, h);
-}
-
-#define hlist_for_each(pos, head) \
-	for (pos = (head)->first; pos ; pos = pos->next)
-
-#define hlist_for_each_safe(pos, n, head) \
-	for (pos = (head)->first; pos && ({ n = pos->next; 1; }); \
-	     pos = n)
-
-#define hlist_entry(ptr, type, member) container_of(ptr, type, member)
-
-#define hlist_entry_safe(ptr, type, member) \
-	({ typeof(ptr) ____ptr = (ptr); \
-	   ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
-	})
-
-#define hlist_for_each_entry(pos, head, member)                                \
-	for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);    \
-	     pos;                                                              \
-	     pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
-
-#define hlist_for_each_entry_safe(pos, n, head, member)                   \
-	for (pos = hlist_entry_safe((head)->first, typeof(*pos), member); \
-	     pos && ({ n = pos->member.next; 1; });                       \
-	     pos = hlist_entry_safe(n, typeof(*pos), member))
-
-#endif /* _HLIST_H */
diff --git a/src/neigh.h b/src/neigh.h
index 0724fa6cacf7a0eae739ee0356cce19920346e91..1e2cb6c704aa966f1c7bd3c2159b955542ef1a23 100644
--- a/src/neigh.h
+++ b/src/neigh.h
@@ -12,7 +12,6 @@
 
 #include <easy/easy.h>
 
-#include "hlist.h"
 
 #define NEIGH_ENTRIES_MAX		128
 #define NEIGH_AGEOUT_DEFAULT		60000	/* msecs */