diff --git a/ripngd/ChangeLog b/ripngd/ChangeLog
index 112aa19..8fb577b 100644
--- a/ripngd/ChangeLog
+++ b/ripngd/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-08 Hasso Tepper <hasso at quagga.net>
+
+	* *.[c|h]: Fix compiler warnings: make strings const, signed ->
+	  unsigned etc.
+
 2004-09-26 Hasso Tepper <hasso at quagga.net>
 
 	* ripingd.c: Access list hook argument function must have struct
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 126829f..eb9005c 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -604,7 +604,7 @@
       return -1;
     }
   else
-    node->info = "enabled";
+    node->info = (char *) "enabled";
 
   /* XXX: One should find a better solution than a generic one */
   ripng_enable_apply_all();
@@ -638,7 +638,7 @@
 int
 ripng_enable_if_lookup (char *ifname)
 {
-  int i;
+  unsigned int i;
   char *str;
 
   for (i = 0; i < vector_max (ripng_enable_if); i++)
@@ -836,7 +836,7 @@
 void
 ripng_clean_network ()
 {
-  int i;
+  unsigned int i;
   char *str;
   struct route_node *rn;
 
@@ -862,7 +862,7 @@
 int
 ripng_passive_interface_lookup (char *ifname)
 {
-  int i;
+  unsigned int i;
   char *str;
 
   for (i = 0; i < vector_max (Vripng_passive_interface); i++)
@@ -937,7 +937,7 @@
 void
 ripng_passive_interface_clean (void)
 {
-  int i;
+  unsigned int i;
   char *str;
 
   for (i = 0; i < vector_max (Vripng_passive_interface); i++)
@@ -953,7 +953,7 @@
 int
 ripng_network_write (struct vty *vty, int config_mode)
 {
-  int i;
+  unsigned int i;
   char *ifname;
   struct route_node *node;
   char buf[BUFSIZ];
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index 9219378..40d2b14 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -96,7 +96,7 @@
 struct thread_master *master;
 
 /* Process ID saved for use by init system */
-char *pid_file = PATH_RIPNGD_PID;
+const char *pid_file = PATH_RIPNGD_PID;
 
 /* Help information display. */
 static void
diff --git a/ripngd/ripng_routemap.c b/ripngd/ripng_routemap.c
index 0bd7e44..a318301 100644
--- a/ripngd/ripng_routemap.c
+++ b/ripngd/ripng_routemap.c
@@ -45,7 +45,7 @@
 
 int
 ripng_route_match_add (struct vty *vty, struct route_map_index *index,
-		       char *command, char *arg)
+		       const char *command, char *arg)
 {
   int ret;
 
@@ -69,7 +69,7 @@
 
 int
 ripng_route_match_delete (struct vty *vty, struct route_map_index *index,
-			  char *command, char *arg)
+			  const char *command, char *arg)
 {
   int ret;
 
@@ -93,7 +93,7 @@
 
 int
 ripng_route_set_add (struct vty *vty, struct route_map_index *index,
-		     char *command, char *arg)
+		     const char *command, char *arg)
 {
   int ret;
 
@@ -117,7 +117,7 @@
 
 int
 ripng_route_set_delete (struct vty *vty, struct route_map_index *index,
-			char *command, char *arg)
+			const char *command, char *arg)
 {
   int ret;
 
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index 45ba213..7aaa353 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -207,7 +207,7 @@
 static struct {
   int type;
   int str_min_len;
-  char *str;
+  const char *str;
 } redist_type[] = {
   {ZEBRA_ROUTE_KERNEL,  1, "kernel"},
   {ZEBRA_ROUTE_CONNECT, 1, "connected"},
@@ -484,8 +484,8 @@
 ripng_redistribute_write (struct vty *vty, int config_mode)
 {
   int i;
-  char *str[] = { "system", "kernel", "connected", "static", "rip",
-		  "ripng", "ospf", "ospf6", "isis", "bgp"};
+  const char *str[] = { "system", "kernel", "connected", "static", "rip",
+			"ripng", "ospf", "ospf6", "isis", "bgp"};
 
   for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
     if (i != zclient->redist_default && zclient->redist[i])
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index 4d7c021..a7254bc 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -296,11 +296,11 @@
 
 /* Dump rip packet */
 void
-ripng_packet_dump (struct ripng_packet *packet, int size, char *sndrcv)
+ripng_packet_dump (struct ripng_packet *packet, int size, const char *sndrcv)
 {
   caddr_t lim;
   struct rte *rte;
-  char *command_str;
+  const char *command_str;
 
   /* Set command string. */
   if (packet->command == RIPNG_REQUEST)
@@ -1935,12 +1935,13 @@
     }
 }
 
-/* Each route type's strings and default preference. */
+/* Each route type's strings and default preference.
+ * FIXME: ISIS? What are these distance values? */
 struct
 {  
   int key;
-  char *str;
-  char *str_long;
+  const char *str;
+  const char *str_long;
   int distance;
 } route_info[] =
 {
diff --git a/ripngd/ripngd.h b/ripngd/ripngd.h
index 609e692..bf69af4 100644
--- a/ripngd/ripngd.h
+++ b/ripngd/ripngd.h
@@ -395,7 +395,7 @@
 int ripng_send_packet (caddr_t buf, int bufsize, struct sockaddr_in6 *to, 
 		       struct interface *ifp);
 
-void ripng_packet_dump (struct ripng_packet *packet, int size, char *sndrcv);
+void ripng_packet_dump (struct ripng_packet *packet, int size, const char *sndrcv);
 
 
 #endif /* _ZEBRA_RIPNG_RIPNGD_H */
