Index: kernel/generic/src/adt/hash_table.c
===================================================================
--- kernel/generic/src/adt/hash_table.c	(revision 948222e45b757067cc0c8605fb69b04c5ba6f5a8)
+++ kernel/generic/src/adt/hash_table.c	(revision 963037b03d0c4638e2e8a5213a3c29228dec8382)
@@ -274,7 +274,13 @@
 	assert(h && h->bucket);
 
+	size_t idx = h->op->hash(item) % h->bucket_cnt;
+
 	/* Traverse the circular list until we reach the starting item again. */
 	for (link_t *cur = item->link.next; cur != &item->link; cur = cur->next) {
 		assert(cur);
+
+		if (cur == &h->bucket[idx].head)
+			continue;
+
 		ht_link_t *cur_link = member_to_inst(cur, ht_link_t, link);
 		/*
Index: uspace/lib/c/generic/adt/hash_table.c
===================================================================
--- uspace/lib/c/generic/adt/hash_table.c	(revision 948222e45b757067cc0c8605fb69b04c5ba6f5a8)
+++ uspace/lib/c/generic/adt/hash_table.c	(revision 963037b03d0c4638e2e8a5213a3c29228dec8382)
@@ -274,7 +274,13 @@
 	assert(h && h->bucket);
 
+	size_t idx = h->op->hash(item) % h->bucket_cnt;
+
 	/* Traverse the circular list until we reach the starting item again. */
 	for (link_t *cur = item->link.next; cur != &item->link; cur = cur->next) {
 		assert(cur);
+
+		if (cur == &h->bucket[idx].head)
+			continue;
+
 		ht_link_t *cur_link = member_to_inst(cur, ht_link_t, link);
 		/*
