diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index 2150add..2424494 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,11 @@
+2008-07-22 Paul Jakma <paul.jakma@sun.com>
+
+	* bgp_community.c: (community_str2com) assigns defaults to local
+	  vars
+	* bgp_attr.c: (bgp_attr_parse) match format specifier to arg
+	* bgp_table.{c,h}: (bgp_table_top) can take a * to a const, quelling
+	  warning in bgp_route.c
+ 
 2008-07-21 Paul Jakma <paul.jakma@sun.com>
 
 
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c
index 19a0869..752099d 100644
--- a/bgpd/bgp_attr.c
+++ b/bgpd/bgp_attr.c
@@ -1571,7 +1571,7 @@
           && ((endp - startp) < (BGP_ATTR_MIN_LEN + 1)))
 	{
 	  zlog (peer->log, LOG_WARNING, 
-		"%s Extended length set, but just %u bytes of attr header",
+		"%s Extended length set, but just %lu bytes of attr header",
 		peer->host,
 		(unsigned long) (endp - STREAM_PNT (BGP_INPUT (peer))));
 
diff --git a/bgpd/bgp_community.c b/bgpd/bgp_community.c
index d5e9821..592b810 100644
--- a/bgpd/bgp_community.c
+++ b/bgpd/bgp_community.c
@@ -581,8 +581,8 @@
 {
   struct community *com = NULL;
   struct community *com_sort = NULL;
-  u_int32_t val;
-  enum community_token token;
+  u_int32_t val = 0;
+  enum community_token token = community_token_unknown;
 
   do 
     {
diff --git a/bgpd/bgp_table.c b/bgpd/bgp_table.c
index be59832..c212025 100644
--- a/bgpd/bgp_table.c
+++ b/bgpd/bgp_table.c
@@ -230,7 +230,7 @@
 
 /* Find matched prefix. */
 struct bgp_node *
-bgp_node_match (struct bgp_table *table, struct prefix *p)
+bgp_node_match (const struct bgp_table *table, struct prefix *p)
 {
   struct bgp_node *node;
   struct bgp_node *matched;
@@ -256,7 +256,7 @@
 }
 
 struct bgp_node *
-bgp_node_match_ipv4 (struct bgp_table *table, struct in_addr *addr)
+bgp_node_match_ipv4 (const struct bgp_table *table, struct in_addr *addr)
 {
   struct prefix_ipv4 p;
 
@@ -270,7 +270,7 @@
 
 #ifdef HAVE_IPV6
 struct bgp_node *
-bgp_node_match_ipv6 (struct bgp_table *table, struct in6_addr *addr)
+bgp_node_match_ipv6 (const struct bgp_table *table, struct in6_addr *addr)
 {
   struct prefix_ipv6 p;
 
@@ -285,7 +285,7 @@
 
 /* Lookup same prefix node.  Return NULL when we can't find route. */
 struct bgp_node *
-bgp_node_lookup (struct bgp_table *table, struct prefix *p)
+bgp_node_lookup (const struct bgp_table *table, struct prefix *p)
 {
   struct bgp_node *node;
 
@@ -305,7 +305,7 @@
 
 /* Add node to routing table. */
 struct bgp_node *
-bgp_node_get (struct bgp_table *table, struct prefix *p)
+bgp_node_get (struct bgp_table *const table, struct prefix *p)
 {
   struct bgp_node *new;
   struct bgp_node *node;
@@ -405,7 +405,7 @@
 /* Get fist node and lock it.  This function is useful when one want
    to lookup all the node exist in the routing table. */
 struct bgp_node *
-bgp_table_top (struct bgp_table *table)
+bgp_table_top (const struct bgp_table *const table)
 {
   /* If there is no node in the routing table return NULL. */
   if (table->top == NULL)
@@ -499,7 +499,7 @@
 }
 
 unsigned long
-bgp_table_count (struct bgp_table *table)
+bgp_table_count (const struct bgp_table *table)
 {
   return table->count;
 }
diff --git a/bgpd/bgp_table.h b/bgpd/bgp_table.h
index 0387c24..dfa7e1f 100644
--- a/bgpd/bgp_table.h
+++ b/bgpd/bgp_table.h
@@ -70,18 +70,18 @@
 extern struct bgp_table *bgp_table_init (afi_t, safi_t);
 extern void bgp_table_finish (struct bgp_table **);
 extern void bgp_unlock_node (struct bgp_node *node);
-extern struct bgp_node *bgp_table_top (struct bgp_table *);
+extern struct bgp_node *bgp_table_top (const struct bgp_table *const);
 extern struct bgp_node *bgp_route_next (struct bgp_node *);
 extern struct bgp_node *bgp_route_next_until (struct bgp_node *, struct bgp_node *);
-extern struct bgp_node *bgp_node_get (struct bgp_table *, struct prefix *);
-extern struct bgp_node *bgp_node_lookup (struct bgp_table *, struct prefix *);
+extern struct bgp_node *bgp_node_get (struct bgp_table *const, struct prefix *);
+extern struct bgp_node *bgp_node_lookup (const struct bgp_table *const, struct prefix *);
 extern struct bgp_node *bgp_lock_node (struct bgp_node *node);
-extern struct bgp_node *bgp_node_match (struct bgp_table *, struct prefix *);
-extern struct bgp_node *bgp_node_match_ipv4 (struct bgp_table *,
+extern struct bgp_node *bgp_node_match (const struct bgp_table *, struct prefix *);
+extern struct bgp_node *bgp_node_match_ipv4 (const struct bgp_table *,
 					  struct in_addr *);
 #ifdef HAVE_IPV6
-extern struct bgp_node *bgp_node_match_ipv6 (struct bgp_table *,
+extern struct bgp_node *bgp_node_match_ipv6 (const struct bgp_table *,
 					  struct in6_addr *);
 #endif /* HAVE_IPV6 */
-extern unsigned long bgp_table_count (struct bgp_table *);
+extern unsigned long bgp_table_count (const struct bgp_table *const);
 #endif /* _QUAGGA_BGP_TABLE_H */
