diff --git a/ospfclient/ChangeLog b/ospfclient/ChangeLog
index 3c6b462..e678aff 100644
--- a/ospfclient/ChangeLog
+++ b/ospfclient/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-24 Paul Jakma <paul.jakma@sun.com>
+
+	* ospf_apiclient.c: add static qualifier to relevant functions.
+	* ospfclient.c: ditto
+
 2005-04-20 Paul Jakma <paul@dishone.st>
 
 	* Makefile.am: Add @INCLUDES@ and srcdir to allow out-of-tree
diff --git a/ospfclient/ospf_apiclient.c b/ospfclient/ospf_apiclient.c
index d6aa638..09d90b3 100644
--- a/ospfclient/ospf_apiclient.c
+++ b/ospfclient/ospf_apiclient.c
@@ -69,7 +69,7 @@
  * -----------------------------------------------------------
  */
 
-unsigned short
+static unsigned short
 ospf_apiclient_getport (void)
 {
   struct servent *sp = getservbyname ("ospfapi", "tcp");
@@ -91,7 +91,7 @@
   struct hostent *hp;
   struct ospf_apiclient *new;
   int size = 0;
-  int peeraddrlen;
+  unsigned int peeraddrlen;
   int async_server_sock;
   int fd1, fd2;
   int ret;
@@ -294,7 +294,7 @@
  */
 
 /* Send synchronous request, wait for reply */
-int
+static int
 ospf_apiclient_send_request (struct ospf_apiclient *oclient, struct msg *msg)
 {
   u_int32_t reqseq;
@@ -505,7 +505,7 @@
  * -----------------------------------------------------------
  */
 
-void
+static void
 ospf_apiclient_handle_ready (struct ospf_apiclient *oclient, struct msg *msg)
 {
   struct msg_ready_notify *r;
@@ -518,7 +518,7 @@
     }
 }
 
-void
+static void
 ospf_apiclient_handle_new_if (struct ospf_apiclient *oclient, struct msg *msg)
 {
   struct msg_new_if *n;
@@ -531,7 +531,7 @@
     }
 }
 
-void
+static void
 ospf_apiclient_handle_del_if (struct ospf_apiclient *oclient, struct msg *msg)
 {
   struct msg_del_if *d;
@@ -544,7 +544,7 @@
     }
 }
 
-void
+static void
 ospf_apiclient_handle_ism_change (struct ospf_apiclient *oclient,
 				  struct msg *msg)
 {
@@ -559,7 +559,7 @@
 
 }
 
-void
+static void
 ospf_apiclient_handle_nsm_change (struct ospf_apiclient *oclient,
 				  struct msg *msg)
 {
@@ -573,7 +573,7 @@
     }
 }
 
-void
+static void
 ospf_apiclient_handle_lsa_update (struct ospf_apiclient *oclient,
 				  struct msg *msg)
 {
@@ -604,7 +604,7 @@
   XFREE (MTYPE_OSPF_APICLIENT, lsa);
 }
 
-void
+static void
 ospf_apiclient_handle_lsa_delete (struct ospf_apiclient *oclient,
 				  struct msg *msg)
 {
@@ -635,7 +635,7 @@
   XFREE (MTYPE_OSPF_APICLIENT, lsa);
 }
 
-void
+static void
 ospf_apiclient_msghandle (struct ospf_apiclient *oclient, struct msg *msg)
 {
   /* Call message handler function. */
diff --git a/ospfclient/ospfclient.c b/ospfclient/ospfclient.c
index 2801087..b005615 100644
--- a/ospfclient/ospfclient.c
+++ b/ospfclient/ospfclient.c
@@ -64,7 +64,7 @@
  * ---------------------------------------------------------
  */
 
-int
+static int
 lsa_delete (struct thread *t)
 {
   struct ospf_apiclient *oclient;
@@ -85,7 +85,7 @@
   return rc;
 }
 
-int
+static int
 lsa_inject (struct thread *t)
 {
   struct ospf_apiclient *cl;
@@ -126,7 +126,7 @@
 
 /* This thread handles asynchronous messages coming in from the OSPF
    API server */
-int
+static int
 lsa_read (struct thread *thread)
 {
   struct ospf_apiclient *oclient;
@@ -156,7 +156,7 @@
  * ---------------------------------------------------------
  */
 
-void
+static void
 lsa_update_callback (struct in_addr ifaddr, struct in_addr area_id,
 		     u_char is_self_originated,
 		     struct lsa_header *lsa)
@@ -182,7 +182,7 @@
   ospf_lsa_header_dump (lsa);
 }
 
-void
+static void
 lsa_delete_callback (struct in_addr ifaddr, struct in_addr area_id,
 		     u_char is_self_originated,
 		     struct lsa_header *lsa)
@@ -195,7 +195,7 @@
   ospf_lsa_header_dump (lsa);
 }
 
-void
+static void
 ready_callback (u_char lsa_type, u_char opaque_type, struct in_addr addr)
 {
   printf ("ready_callback: lsa_type: %d opaque_type: %d addr=%s\n",
@@ -211,20 +211,20 @@
   thread_add_timer (master, lsa_delete, oclient, 30);
 }
 
-void
+static void
 new_if_callback (struct in_addr ifaddr, struct in_addr area_id)
 {
   printf ("new_if_callback: ifaddr: %s ", inet_ntoa (ifaddr));
   printf ("area_id: %s\n", inet_ntoa (area_id));
 }
 
-void
+static void
 del_if_callback (struct in_addr ifaddr)
 {
   printf ("new_if_callback: ifaddr: %s\n ", inet_ntoa (ifaddr));
 }
 
-void
+static void
 ism_change_callback (struct in_addr ifaddr, struct in_addr area_id,
 		     u_char state)
 {
@@ -233,7 +233,7 @@
   printf ("state: %d [%s]\n", state, LOOKUP (ospf_ism_state_msg, state));
 }
 
-void
+static void
 nsm_change_callback (struct in_addr ifaddr, struct in_addr nbraddr,
 		     struct in_addr router_id, u_char state)
 {
@@ -249,7 +249,7 @@
  * ---------------------------------------------------------
  */
 
-int usage()
+static int usage()
 {
   printf("Usage: ospfclient <ospfd> <lsatype> <opaquetype> <opaqueid> <ifaddr> <areaid>\n");
   printf("where ospfd     : router where API-enabled OSPF daemon is running\n");
