diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c
index a249c23..3385a93 100644
--- a/bgpd/bgp_table.c
+++ b/bgpd/bgp_table.c
@@ -289,16 +289,18 @@
 bgp_node_lookup (const struct bgp_table *table, struct prefix *p)
 {
   struct bgp_node *node;
+  u_char prefixlen = p->prefixlen;
+  const u_char *prefix = &p->u.prefix;
 
   node = table->top;
 
-  while (node && node->p.prefixlen <= p->prefixlen && 
+  while (node && node->p.prefixlen <= prefixlen &&
 	 prefix_match (&node->p, p))
     {
-      if (node->p.prefixlen == p->prefixlen && node->info)
+      if (node->p.prefixlen == prefixlen && node->info)
 	return bgp_lock_node (node);
 
-      node = node->link[prefix_bit(&p->u.prefix, node->p.prefixlen)];
+      node = node->link[prefix_bit(prefix, node->p.prefixlen)];
     }
 
   return NULL;
@@ -311,19 +313,21 @@
   struct bgp_node *new;
   struct bgp_node *node;
   struct bgp_node *match;
+  u_char prefixlen = p->prefixlen;
+  const u_char *prefix = &p->u.prefix;
 
   match = NULL;
   node = table->top;
-  while (node && node->p.prefixlen <= p->prefixlen && 
+  while (node && node->p.prefixlen <= prefixlen &&
 	 prefix_match (&node->p, p))
     {
-      if (node->p.prefixlen == p->prefixlen)
+      if (node->p.prefixlen == prefixlen)
 	{
 	  bgp_lock_node (node);
 	  return node;
 	}
       match = node;
-      node = node->link[prefix_bit(&p->u.prefix, node->p.prefixlen)];
+      node = node->link[prefix_bit(prefix, node->p.prefixlen)];
     }
 
   if (node == NULL)
@@ -347,7 +351,7 @@
       else
 	table->top = new;
 
-      if (new->p.prefixlen != p->prefixlen)
+      if (new->p.prefixlen != prefixlen)
 	{
 	  match = new;
 	  new = bgp_node_set (table, p);
diff --git a/lib/table.c b/lib/table.c
index e40e670..fcb7ecc 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -258,16 +258,18 @@
 route_node_lookup (struct route_table *table, struct prefix *p)
 {
   struct route_node *node;
+  u_char prefixlen = p->prefixlen;
+  const u_char *prefix = &p->u.prefix;
 
   node = table->top;
 
-  while (node && node->p.prefixlen <= p->prefixlen && 
+  while (node && node->p.prefixlen <= prefixlen &&
 	 prefix_match (&node->p, p))
     {
-      if (node->p.prefixlen == p->prefixlen)
+      if (node->p.prefixlen == prefixlen)
         return node->info ? route_lock_node (node) : NULL;
 
-      node = node->link[prefix_bit(&p->u.prefix, node->p.prefixlen)];
+      node = node->link[prefix_bit(prefix, node->p.prefixlen)];
     }
 
   return NULL;
@@ -280,17 +282,19 @@
   struct route_node *new;
   struct route_node *node;
   struct route_node *match;
+  u_char prefixlen = p->prefixlen;
+  const u_char *prefix = &p->u.prefix;
 
   match = NULL;
   node = table->top;
-  while (node && node->p.prefixlen <= p->prefixlen && 
+  while (node && node->p.prefixlen <= prefixlen &&
 	 prefix_match (&node->p, p))
     {
-      if (node->p.prefixlen == p->prefixlen)
+      if (node->p.prefixlen == prefixlen)
         return route_lock_node (node);
-      
+
       match = node;
-      node = node->link[prefix_bit(&p->u.prefix, node->p.prefixlen)];
+      node = node->link[prefix_bit(prefix, node->p.prefixlen)];
     }
 
   if (node == NULL)
