Vtysh compiles cleanly as well.
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index 5d8b7e4..80c2295 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,10 @@
+2004-10-07 Hasso Tepper <hasso at quagga.net>
+
+	* vtysh.c, vtysh.h, vtysh_config.c, vtysh_main.c: Fix compiler
+	  warnings: make strings const, signed -> unsigned, remove unused
+	  variables.
+	* vtysh_config.c: Fix crash introduced with previous patch.
+
 2004-10-03 Hasso Tepper <hasso at quagga.net>
 
 	* vtsyh_main.c: Enter into enable node by default. Disable node doesn't
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 79e0742..733bb43 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -161,7 +161,7 @@
 }
 
 int
-vtysh_client_execute (struct vtysh_client *vclient, char *line, FILE *fp)
+vtysh_client_execute (struct vtysh_client *vclient, const char *line, FILE *fp)
 {
   int ret;
   char buf[1001];
@@ -245,7 +245,7 @@
 
 /* Command execution over the vty interface. */
 void
-vtysh_execute_func (char *line, int pager)
+vtysh_execute_func (const char *line, int pager)
 {
   int ret, cmd_stat;
   vector vline;
@@ -390,13 +390,13 @@
 }
 
 void
-vtysh_execute_no_pager (char *line)
+vtysh_execute_no_pager (const char *line)
 {
   vtysh_execute_func (line, 0);
 }
 
 void
-vtysh_execute (char *line)
+vtysh_execute (const char *line)
 {
   vtysh_execute_func (line, 1);
 }
@@ -512,7 +512,7 @@
 vtysh_rl_describe ()
 {
   int ret;
-  int i;
+  unsigned int i;
   vector vline;
   vector describe;
   int width;
@@ -1576,9 +1576,6 @@
 {
   int ret = CMD_SUCCESS;
   char line[] = "write memory\n";
-  char *vtysh_conf;
-  extern struct host host;
-  FILE *fp;
   
   /* If integrated Quagga.conf explicitely set. */
   if (vtysh_writeconfig_integrated)
@@ -1700,7 +1697,7 @@
 
 /* Execute command in child process. */
 int
-execute_command (char *command, int argc, char *arg1, char *arg2)
+execute_command (const char *command, int argc, char *arg1, char *arg2)
 {
   int ret;
   pid_t pid;
@@ -1871,7 +1868,7 @@
 
 /* Making connection to protocol daemon. */
 int
-vtysh_connect (struct vtysh_client *vclient, char *path)
+vtysh_connect (struct vtysh_client *vclient, const char *path)
 {
   int ret;
   int sock, len;
diff --git a/vtysh/vtysh.h b/vtysh/vtysh.h
index b632b6d..e0c3a5b 100644
--- a/vtysh/vtysh.h
+++ b/vtysh/vtysh.h
@@ -51,8 +51,8 @@
 void vtysh_readline_init ();
 void vtysh_user_init ();
 
-void vtysh_execute (char *);
-void vtysh_execute_no_pager (char *);
+void vtysh_execute (const char *);
+void vtysh_execute_no_pager (const char *);
 
 char *vtysh_prompt ();
 
diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c
index 2687918..f068b1f 100644
--- a/vtysh/vtysh_config.c
+++ b/vtysh/vtysh_config.c
@@ -83,7 +83,7 @@
 }
 
 struct config *
-config_get (int index, char *line)
+config_get (int index, const char *line)
 {
   struct config *config;
   struct config *config_loop;
@@ -122,13 +122,13 @@
 }
 
 void
-config_add_line (struct list *config, char *line)
+config_add_line (struct list *config, const char *line)
 {
   listnode_add (config, XSTRDUP (MTYPE_VTYSH_CONFIG_LINE, line));
 }
 
 void
-config_add_line_uniq (struct list *config, char *line)
+config_add_line_uniq (struct list *config, const char *line)
 {
   struct listnode *nn;
   char *pnt;
@@ -142,7 +142,7 @@
 }
 
 void
-vtysh_config_parse_line (char *line)
+vtysh_config_parse_line (const char *line)
 {
   char c;
   static struct config *config = NULL;
@@ -294,7 +294,7 @@
   struct config *config;
   struct list *master;
   char *line;
-  int i;
+  unsigned int i;
 
   LIST_LOOP (config_top, line, nn)
     {
@@ -403,7 +403,7 @@
 void
 vtysh_config_write ()
 {
-  char *line;
+  char line[81];
   extern struct host host;
 
   if (host.name)
diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c
index 5f7856c..7f8e059 100644
--- a/vtysh/vtysh_main.c
+++ b/vtysh/vtysh_main.c
@@ -190,7 +190,6 @@
   int eval_flag = 0;
   int boot_flag = 0;
   char *eval_line = NULL;
-  char *integrated_file = NULL;
 
   /* Preserve name of myself. */
   progname = ((p = strrchr (argv[0], '/')) ? ++p : argv[0]);