diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c
index 7d738f9..7b410b1 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -286,7 +286,7 @@
   return buf;
 }
 
-void
+static void
 ospf_packet_hello_dump (struct stream *s, u_int16_t length)
 {
   struct ospf_hello *hello;
@@ -310,7 +310,7 @@
     zlog_debug ("    Neighbor %s", inet_ntoa (hello->neighbors[i]));
 }
 
-char *
+static char *
 ospf_dd_flags_dump (u_char flags, char *buf, size_t size)
 {
   memset (buf, 0, size);
@@ -341,7 +341,7 @@
   zlog_debug ("    length %d", ntohs (lsah->length));
 }
 
-char *
+static char *
 ospf_router_lsa_flags_dump (u_char flags, char *buf, size_t size)
 {
   memset (buf, 0, size);
@@ -354,7 +354,7 @@
   return buf;
 }
 
-void
+static void
 ospf_router_lsa_dump (struct stream *s, u_int16_t length)
 {
   char buf[BUFSIZ];
@@ -381,7 +381,7 @@
     }
 }
 
-void
+static void
 ospf_network_lsa_dump (struct stream *s, u_int16_t length)
 {
   struct network_lsa *nl;
@@ -402,7 +402,7 @@
     zlog_debug ("      Attached Router %s", inet_ntoa (nl->routers[i]));
 }
 
-void
+static void
 ospf_summary_lsa_dump (struct stream *s, u_int16_t length)
 {
   struct summary_lsa *sl;
@@ -420,7 +420,7 @@
 	       GET_METRIC (sl->metric));
 }
 
-void
+static void
 ospf_as_external_lsa_dump (struct stream *s, u_int16_t length)
 {
   struct as_external_lsa *al;
@@ -442,7 +442,7 @@
     }
 }
 
-void
+static void
 ospf_lsa_header_list_dump (struct stream *s, u_int16_t length)
 {
   struct lsa_header *lsa;
@@ -460,7 +460,7 @@
     }
 }
 
-void
+static void
 ospf_packet_db_desc_dump (struct stream *s, u_int16_t length)
 {
   struct ospf_db_desc *dd;
@@ -488,7 +488,7 @@
   stream_set_getp (s, gp);
 }
 
-void
+static void
 ospf_packet_ls_req_dump (struct stream *s, u_int16_t length)
 {
   u_int32_t sp;
@@ -518,7 +518,7 @@
   stream_set_getp (s, sp);
 }
 
-void
+static void
 ospf_packet_ls_upd_dump (struct stream *s, u_int16_t length)
 {
   u_int32_t sp;
@@ -585,7 +585,7 @@
   stream_set_getp (s, sp);
 }
 
-void
+static void
 ospf_packet_ls_ack_dump (struct stream *s, u_int16_t length)
 {
   u_int32_t sp;
@@ -617,7 +617,7 @@
   zlog_debug ("ip_dst %s", inet_ntoa (iph->ip_dst));
 }
 
-void
+static void
 ospf_header_dump (struct ospf_header *ospfh)
 {
   char buf[9];
@@ -1478,7 +1478,7 @@
   1 /* VTYSH */
 };
 
-int
+static int
 config_write_debug (struct vty *vty)
 {
   int write = 0;
