diff --git a/src/server/cache-node.h b/src/server/cache-node.h
index 19280c075dc509cf849d9c3dccdfa58e764bbac2..453bee8b3b3b74296d58ba63297294319f8c588e 100644
--- a/src/server/cache-node.h
+++ b/src/server/cache-node.h
@@ -15,8 +15,8 @@ typedef struct cache_node {
     long   size;		/* Size on disk. */
     long   pos_b;		/* Position to element in file B. */
     long   size_b;		/* Size in file B. */
-    struct cache_node *lru;
-    struct cache_node *mru;
+    struct cache_node *prev;	/* Points towards most recently used. */
+    struct cache_node *next;	/* Points towards least recently used. */
     int	lock_cnt;
 } Cache_node;
 
@@ -42,7 +42,7 @@ typedef struct cache_node_mcb {
     Cache_node	*mru;
     Cache_node	*lru;
     u_long lookup_table_size;
-    Cache_node	*lookup_table;	/* Easy to implement, but memory expensive. */
+    Cache_node	**lookup_table;	/* Easy to implement, but memory expensive. */
 } Cache_node_mcb;
 
 
@@ -64,6 +64,10 @@ create_cache_node_mcb(int mcb_size,
 		      int table_size);
 
 
+extern void
+destruct_cache_node(Cache_node_mcb  *control,
+		    u_long           key);
+
 extern Cache_node *
 get_cache_node (Cache_node_mcb *control,
 		u_long          key);
@@ -74,6 +78,10 @@ create_cache_node (Cache_node_mcb *control,
 		   u_long          key);
 
 
+extern  void
+zero_init_cache_node (Cache_node_mcb *control,
+		      u_long          key);
+
 extern void
 set_mru(Cache_node_mcb *mcb,
 	u_long         key);