diff --git a/ripd/ripd.c b/ripd/ripd.c
index 3267e15..a7286d3 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -63,10 +63,11 @@
 long rip_global_queries = 0;
 
 /* Prototypes. */
-void rip_event (enum rip_event, int);
-
-void rip_output_process (struct connected *, struct sockaddr_in *, int, u_char);
-
+static void rip_event (enum rip_event, int);
+static void rip_output_process (struct connected *, struct sockaddr_in *, int, u_char);
+static int rip_triggered_update (struct thread *);
+static int rip_update_jitter (unsigned long);
+
 /* RIP output routes type. */
 enum
 {
@@ -87,7 +88,7 @@
 };
 
 /* Utility function to set boradcast option to the socket. */
-int
+static int
 sockopt_broadcast (int sock)
 {
   int ret;
@@ -102,13 +103,13 @@
   return 0;
 }
 
-int
+static int
 rip_route_rte (struct rip_info *rinfo)
 {
   return (rinfo->type == ZEBRA_ROUTE_RIP && rinfo->sub_type == RIP_ROUTE_RTE);
 }
 
-struct rip_info *
+static struct rip_info *
 rip_info_new ()
 {
   struct rip_info *new;
@@ -125,7 +126,7 @@
 }
 
 /* RIP route garbage collect timer. */
-int
+static int
 rip_garbage_collect (struct thread *t)
 {
   struct rip_info *rinfo;
@@ -151,7 +152,7 @@
 }
 
 /* Timeout RIP routes. */
-int
+static int
 rip_timeout (struct thread *t)
 {
   struct rip_info *rinfo;
@@ -183,7 +184,7 @@
   return 0;
 }
 
-void
+static void
 rip_timeout_update (struct rip_info *rinfo)
 {
   if (rinfo->metric != RIP_METRIC_INFINITY)
@@ -193,7 +194,7 @@
     }
 }
 
-int
+static int
 rip_incoming_filter (struct prefix_ipv4 *p, struct rip_interface *ri)
 {
   struct distribute *dist;
@@ -264,7 +265,7 @@
   return 0;
 }
 
-int
+static int
 rip_outgoing_filter (struct prefix_ipv4 *p, struct rip_interface *ri)
 {
   struct distribute *dist;
@@ -361,7 +362,7 @@
 }
 
 /* RIP add route to routing table. */
-void
+static void
 rip_rte_process (struct rte *rte, struct sockaddr_in *from,
                  struct interface *ifp)
 {
@@ -694,7 +695,7 @@
 }
 
 /* Dump RIP packet */
-void
+static void
 rip_packet_dump (struct rip_packet *packet, int size, const char *sndrcv)
 {
   caddr_t lim;
@@ -785,7 +786,7 @@
 /* Check if the destination address is valid (unicast; not net 0
    or 127) (RFC2453 Section 3.9.2 - Page 26).  But we don't
    check net 0 because we accept default route. */
-int
+static int
 rip_destination_check (struct in_addr addr)
 {
   u_int32_t destination;
@@ -812,7 +813,7 @@
 }
 
 /* RIP version 2 authentication. */
-int
+static int
 rip_auth_simple_password (struct rte *rte, struct sockaddr_in *from,
 			  struct interface *ifp)
 {
@@ -854,7 +855,7 @@
 }
 
 /* RIP version 2 authentication with MD5. */
-int
+static int
 rip_auth_md5 (struct rip_packet *packet, struct sockaddr_in *from,
               int length, struct interface *ifp)
 {
@@ -1105,7 +1106,7 @@
 }
 
 /* RIP routing information. */
-void
+static void
 rip_response_process (struct rip_packet *packet, int size, 
 		      struct sockaddr_in *from, struct connected *ifc)
 {
@@ -1409,7 +1410,7 @@
  * by connected argument. NULL to argument denotes destination should be
  * should be RIP multicast group
  */
-int
+static int
 rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
                  struct connected *ifc)
 {
@@ -1643,7 +1644,7 @@
 }
 
 /* Response to request called from rip_read ().*/
-void
+static void
 rip_request_process (struct rip_packet *packet, int size, 
 		     struct sockaddr_in *from, struct connected *ifc)
 {
@@ -1811,7 +1812,7 @@
 #endif /* RIP_RECVMSG */
 
 /* First entry point of RIP packet. */
-int
+static int
 rip_read (struct thread *t)
 {
   int sock;
@@ -2101,7 +2102,7 @@
 
 /* Write routing table entry to the stream and return next index of
    the routing table entry in the stream. */
-int
+static int
 rip_write_rte (int num, struct stream *s, struct prefix_ipv4 *p,
                u_char version, struct rip_info *rinfo)
 {
@@ -2149,7 +2150,7 @@
   /* this might need to made dynamic if RIP ever supported auth methods
      with larger key string sizes */
   char auth_str[RIP_AUTH_SIMPLE_SIZE];
-  size_t doff; /* offset of digest offset field */
+  size_t doff = 0; /* offset of digest offset field */
   int num = 0;
   int rtemax;
   int subnetted = 0;
@@ -2427,7 +2428,7 @@
 }
 
 /* Send RIP packet to the interface. */
-void
+static void
 rip_update_interface (struct connected *ifc, u_char version, int route_type)
 {
   struct sockaddr_in to;
@@ -2470,7 +2471,7 @@
 }
 
 /* Update send to all interface and neighbor. */
-void
+static void
 rip_update_process (int route_type)
 {
   struct listnode *node;
@@ -2572,7 +2573,7 @@
 }
 
 /* RIP's periodical timer. */
-int
+static int
 rip_update (struct thread *t)
 {
   /* Clear timer pointer. */
@@ -2600,7 +2601,7 @@
 }
 
 /* Walk down the RIP routing table then clear changed flag. */
-void
+static void
 rip_clear_changed_flag ()
 {
   struct route_node *rp;
@@ -2613,7 +2614,7 @@
 }
 
 /* Triggered update interval timer. */
-int
+static int
 rip_triggered_interval (struct thread *t)
 {
   int rip_triggered_update (struct thread *);
@@ -2629,7 +2630,7 @@
 }     
 
 /* Execute triggered update. */
-int
+static int
 rip_triggered_update (struct thread *t)
 {
   int interval;
@@ -2706,8 +2707,8 @@
 }
 
 /* Create new RIP instance and set it to global variable. */
-int
-rip_create ()
+static int
+rip_create (void)
 {
   rip = XMALLOC (MTYPE_RIP, sizeof (struct rip));
   memset (rip, 0, sizeof (struct rip));
@@ -2787,7 +2788,7 @@
   return sizeof (rip_packet);
 }
 
-int
+static int
 rip_update_jitter (unsigned long time)
 {
 #define JITTER_BOUND 4
@@ -2990,7 +2991,7 @@
   return CMD_SUCCESS;
 }
 
-void
+static void
 rip_update_default_metric ()
 {
   struct route_node *np;
@@ -3126,7 +3127,7 @@
   char *access_list;
 };
 
-struct rip_distance *
+static struct rip_distance *
 rip_distance_new ()
 {
   struct rip_distance *new;
@@ -3135,13 +3136,13 @@
   return new;
 }
 
-void
+static void
 rip_distance_free (struct rip_distance *rdistance)
 {
   XFREE (MTYPE_RIP_DISTANCE, rdistance);
 }
 
-int
+static int
 rip_distance_set (struct vty *vty, const char *distance_str, const char *ip_str,
 		  const char *access_list_str)
 {
@@ -3188,7 +3189,7 @@
   return CMD_SUCCESS;
 }
 
-int
+static int
 rip_distance_unset (struct vty *vty, const char *distance_str,
 		    const char *ip_str, const char *access_list_str)
 {
@@ -3227,7 +3228,7 @@
   return CMD_SUCCESS;
 }
 
-void
+static void
 rip_distance_reset ()
 {
   struct route_node *rn;
@@ -3288,7 +3289,7 @@
   return 0;
 }
 
-void
+static void
 rip_distance_show (struct vty *vty)
 {
   struct route_node *rn;
@@ -3387,7 +3388,7 @@
 }
 
 /* Print out routes update time. */
-void
+static void
 rip_vty_out_uptime (struct vty *vty, struct rip_info *rinfo)
 {
   struct timeval timer_now;
@@ -3415,7 +3416,7 @@
     }
 }
 
-const char *
+static const char *
 rip_route_type_print (int sub_type)
 {
   switch (sub_type)
@@ -3513,7 +3514,7 @@
 }
 
 /* Return next event time. */
-int
+static int
 rip_next_thread_timer (struct thread *thread)
 {
   struct timeval timer_now;
@@ -3629,7 +3630,7 @@
 }
 
 /* RIP configuration write function. */
-int
+static int
 config_write_rip (struct vty *vty)
 {
   int write = 0;
@@ -3722,7 +3723,7 @@
 };
 
 /* Distribute-list update functions. */
-void
+static void
 rip_distribute_update (struct distribute *dist)
 {
   struct interface *ifp;
@@ -3796,7 +3797,7 @@
 
 /* Update all interface's distribute list. */
 /* ARGSUSED */
-void
+static void
 rip_distribute_update_all (struct prefix_list *notused)
 {
   struct interface *ifp;
@@ -3806,7 +3807,7 @@
     rip_distribute_update_interface (ifp);
 }
 /* ARGSUSED */
-void
+static void
 rip_distribute_update_all_wrapper(struct access_list *notused)
 {
         rip_distribute_update_all(NULL);
@@ -3924,7 +3925,7 @@
   rip_zclient_reset ();
 }
 
-void
+static void
 rip_if_rmap_update (struct if_rmap *if_rmap)
 {
   struct interface *ifp;
@@ -3970,7 +3971,7 @@
     rip_if_rmap_update (if_rmap);
 }
 
-void
+static void
 rip_routemap_update_redistribute (void)
 {
   int i;
@@ -3987,7 +3988,7 @@
 }
 
 /* ARGSUSED */
-void
+static void
 rip_routemap_update (const char *notused)
 {
   struct interface *ifp;
@@ -4001,7 +4002,7 @@
 
 /* Allocate new rip structure and set default value. */
 void
-rip_init ()
+rip_init (void)
 {
   /* Randomize for triggered update random(). */
   srand (time (NULL));
