diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index 3c8032f..a9602d9 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -86,7 +86,7 @@
 };
 
 /* Hash for aspath.  This is the top level structure of AS path. */
-struct hash *ashash;
+static struct hash *ashash;
 
 /* Stream for SNMP. See aspath_snmp_pathseg */
 static struct stream *snmp_stream;
@@ -501,22 +501,6 @@
   return 0;
 }
 
-/* Return number of as numbers in in path */
-unsigned int
-aspath_count_numas (struct aspath *aspath)
-{
-  struct assegment *seg = aspath->segments;
-  unsigned int num;
-  
-  num=0;
-  while (seg)
-    {
-      num += seg->length;
-      seg = seg->next;
-    }
-  return num;
-}
-
 /* Convert aspath structure to string expression. */
 static char *
 aspath_make_str_count (struct aspath *as)
diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h
index 9854d18..b8a5dfa 100644
--- a/bgpd/bgp_aspath.h
+++ b/bgpd/bgp_aspath.h
@@ -99,7 +99,6 @@
 
 extern struct aspath *aspath_reconcile_as4 (struct aspath *, struct aspath *);
 extern unsigned int aspath_has_as4 (struct aspath *);
-extern unsigned int aspath_count_numas (struct aspath *);
 
 /* For SNMP BGP4PATHATTRASPATHSEGMENT, might be useful for debug */
 extern u_char *aspath_snmp_pathseg (struct aspath *, size_t *);
diff --git a/bgpd/bgp_packet.h b/bgpd/bgp_packet.h
index 85d6407..8f0ebe3 100644
--- a/bgpd/bgp_packet.h
+++ b/bgpd/bgp_packet.h
@@ -52,4 +52,6 @@
 			      afi_t, safi_t, struct peer *);
 extern void bgp_default_withdraw_send (struct peer *, afi_t, safi_t);
 
+extern int bgp_capability_receive (struct peer *, bgp_size_t);
+
 #endif /* _QUAGGA_BGP_PACKET_H */
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index b34f996..cf3a6b4 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -1129,7 +1129,7 @@
   return 0;
 }
 
-void
+static void
 peer_nsf_stop (struct peer *peer)
 {
   afi_t afi;
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index e8b8ef5..f4ce898 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -952,6 +952,4 @@
 extern int peer_clear (struct peer *);
 extern int peer_clear_soft (struct peer *, afi_t, safi_t, enum bgp_clear_type);
 
-extern void peer_nsf_stop (struct peer *);
-
 #endif /* _QUAGGA_BGPD_H */
