Index: uspace/lib/c/generic/adt/hash_table.c
===================================================================
--- uspace/lib/c/generic/adt/hash_table.c	(revision 30b56d9814196a29138d75a9555cb10e287d85dd)
+++ uspace/lib/c/generic/adt/hash_table.c	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -91,5 +91,5 @@
  */
 bool hash_table_create(hash_table_t *h, size_t init_size, size_t max_load,
-    hash_table_ops_t *op)
+    const hash_table_ops_t *op)
 {
 	assert(h);
@@ -111,8 +111,4 @@
 	h->apply_ongoing = false;
 
-	if (h->op->remove_callback == NULL) {
-		h->op->remove_callback = nop_remove_callback;
-	}
-
 	return true;
 }
@@ -172,4 +168,6 @@
 	if (h->item_cnt == 0)
 		return;
+
+	void (*remove_cb)(ht_link_t *) = h->op->remove_callback ? h->op->remove_callback : nop_remove_callback;
 
 	for (size_t idx = 0; idx < h->bucket_cnt; ++idx) {
@@ -179,5 +177,5 @@
 
 			list_remove(cur);
-			h->op->remove_callback(cur_link);
+			remove_cb(cur_link);
 		}
 	}
@@ -322,5 +320,7 @@
 			++removed;
 			list_remove(cur);
-			h->op->remove_callback(cur_link);
+
+			if (h->op->remove_callback)
+				h->op->remove_callback(cur_link);
 		}
 	}
@@ -341,5 +341,7 @@
 	list_remove(&item->link);
 	--h->item_cnt;
-	h->op->remove_callback(item);
+
+	if (h->op->remove_callback)
+		h->op->remove_callback(item);
 	shrink_if_needed(h);
 }
Index: uspace/lib/c/generic/async/ports.c
===================================================================
--- uspace/lib/c/generic/async/ports.c	(revision 30b56d9814196a29138d75a9555cb10e287d85dd)
+++ uspace/lib/c/generic/async/ports.c	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -123,5 +123,5 @@
 
 /** Operations for the port hash table. */
-static hash_table_ops_t interface_hash_table_ops = {
+static const hash_table_ops_t interface_hash_table_ops = {
 	.hash = interface_hash,
 	.key_hash = interface_key_hash,
@@ -151,5 +151,5 @@
 
 /** Operations for the port hash table. */
-static hash_table_ops_t port_hash_table_ops = {
+static const hash_table_ops_t port_hash_table_ops = {
 	.hash = port_hash,
 	.key_hash = port_key_hash,
Index: uspace/lib/c/generic/async/server.c
===================================================================
--- uspace/lib/c/generic/async/server.c	(revision 30b56d9814196a29138d75a9555cb10e287d85dd)
+++ uspace/lib/c/generic/async/server.c	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -250,5 +250,5 @@
 
 /** Operations for the client hash table. */
-static hash_table_ops_t client_hash_table_ops = {
+static const hash_table_ops_t client_hash_table_ops = {
 	.hash = client_hash,
 	.key_hash = client_key_hash,
@@ -511,5 +511,5 @@
 
 /** Operations for the notification hash table. */
-static hash_table_ops_t notification_hash_table_ops = {
+static const hash_table_ops_t notification_hash_table_ops = {
 	.hash = notification_hash,
 	.key_hash = notification_key_hash,
