diff --git a/lib/table.c b/lib/table.c
index bd7023c..da21361 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -59,7 +59,7 @@
 
 /* Allocate new route node with prefix set. */
 static struct route_node *
-route_node_set (struct route_table *table, struct prefix *prefix)
+route_node_set (struct route_table *table, const struct prefix *prefix)
 {
   struct route_node *node;
   
@@ -141,14 +141,14 @@
 
 /* Common prefix route genaration. */
 static void
-route_common (struct prefix *n, struct prefix *p, struct prefix *new)
+route_common (const struct prefix *n, const struct prefix *p, struct prefix *new)
 {
   int i;
   u_char diff;
   u_char mask;
 
-  u_char *np = (u_char *)&n->u.prefix;
-  u_char *pp = (u_char *)&p->u.prefix;
+  const u_char *np = (const u_char *)&n->u.prefix;
+  const u_char *pp = (const u_char *)&p->u.prefix;
   u_char *newp = (u_char *)&new->u.prefix;
 
   for (i = 0; i < p->prefixlen / 8; i++)
@@ -265,7 +265,7 @@
 
 /* Lookup same prefix node.  Return NULL when we can't find route. */
 struct route_node *
-route_node_lookup (const struct route_table *table, struct prefix *p)
+route_node_lookup (const struct route_table *table, const struct prefix *p)
 {
   struct route_node *node;
   u_char prefixlen = p->prefixlen;
@@ -287,7 +287,7 @@
 
 /* Add node to routing table. */
 struct route_node *
-route_node_get (struct route_table *const table, struct prefix *p)
+route_node_get (struct route_table *const table, const struct prefix *p)
 {
   struct route_node *new;
   struct route_node *node;
diff --git a/lib/table.h b/lib/table.h
index ab7eb68..2ffd79b 100644
--- a/lib/table.h
+++ b/lib/table.h
@@ -148,9 +148,9 @@
 extern struct route_node *route_next_until (struct route_node *,
                                             struct route_node *);
 extern struct route_node *route_node_get (struct route_table *const,
-                                          struct prefix *);
+                                          const struct prefix *);
 extern struct route_node *route_node_lookup (const struct route_table *,
-                                             struct prefix *);
+                                             const struct prefix *);
 extern struct route_node *route_lock_node (struct route_node *node);
 extern struct route_node *route_node_match (const struct route_table *,
                                             const struct prefix *);
