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]);
