diff --git a/ChangeLog b/ChangeLog
index c4a7177..d2d86af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-06-20 Hasso Tepper <hasso@estpak.ee>
+
+	* lib/vty.c: Don't attempt to load configuration file from current
+	  directory.
+	* Update vty_read_config() calls in bgpd/bgp_main.c, isisd/isis_main.c,
+	  ospf6d/ospf6_main.c, ospfd/ospf_main.c, ripd/rip_main.c,
+	  ripngd/ripng_main.c and zebra/main.c.
+
 2004-05-11 Paul Jakma <paul@dishone.st>
 
 	* configure.ac: Add solaris support for the zebra/*_solaris 
diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 54086e5..a4cd9ab 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -79,7 +79,6 @@
 };
 
 /* Configuration file and directory. */
-char config_current[] = BGP_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR BGP_DEFAULT_CONFIG;
 
 /* Route retain mode flag. */
@@ -159,7 +158,7 @@
   zlog_info ("bgpd restarting!");
 
   /* Reload config file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Create VTY's socket */
   vty_serv_sock (vty_addr, vty_port, BGP_VTYSH_PATH);
@@ -287,7 +286,7 @@
   sort_node ();
 
   /* Parse config file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Turn into daemon if daemon_mode is set. */
   if (daemon_mode)
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index e763a9e..a2a7e51 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -87,7 +87,6 @@
 };
 
 /* Configuration file and directory. */
-char config_current[] = ISISD_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR ISISD_DEFAULT_CONFIG;
 char *config_file = NULL;
 
@@ -311,9 +310,9 @@
 
   /* parse config file */ 
   /* this is needed three times! because we have interfaces before the areas */
-  vty_read_config (config_file, config_current, config_default);
-  vty_read_config (config_file, config_current, config_default);
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
+  vty_read_config (config_file, config_default);
+  vty_read_config (config_file, config_default);
 
   /* demonize */
   if (daemon_mode)
diff --git a/lib/vty.c b/lib/vty.c
index 4b23487..761ca4c 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2208,8 +2208,7 @@
 /* Read up configuration file from file_name. */
 void
 vty_read_config (char *config_file,
-		 char *config_current_dir,
-		 char *config_default_dir)
+                 char *config_default_dir)
 {
   char cwd[MAXPATHLEN];
   FILE *confp = NULL;
@@ -2219,101 +2218,78 @@
   if (config_file != NULL)
     {
       if (! IS_DIRECTORY_SEP (config_file[0]))
-	{
-	  getcwd (cwd, MAXPATHLEN);
-	  fullpath = XMALLOC (MTYPE_TMP, 
-			      strlen (cwd) + strlen (config_file) + 2);
-	  sprintf (fullpath, "%s/%s", cwd, config_file);
-	}
+        {
+          getcwd (cwd, MAXPATHLEN);
+          fullpath = XMALLOC (MTYPE_TMP, 
+ 			      strlen (cwd) + strlen (config_file) + 2);
+          sprintf (fullpath, "%s/%s", cwd, config_file);
+        }
       else
-	fullpath = config_file;
+        fullpath = config_file;
 
       confp = fopen (fullpath, "r");
 
       if (confp == NULL)
-	{
-	  confp = vty_use_backup_config (fullpath);
-	  if (confp)
-	    fprintf (stderr, "WARNING: using backup configuration file!\n");
-	  else
-	    {
-	      fprintf (stderr, "can't open configuration file [%s]\n", 
-		       config_file);
-	      exit(1);
-	    }
-	}
+        {
+          confp = vty_use_backup_config (fullpath);
+          if (confp)
+            fprintf (stderr, "WARNING: using backup configuration file!\n");
+          else
+            {
+              fprintf (stderr, "can't open configuration file [%s]\n", 
+  	            config_file);
+              exit(1);
+            }
+        }
     }
   else
     {
-      /* Relative path configuration file open. */
-      if (config_current_dir)
-	{
-	  confp = fopen (config_current_dir, "r");
-	  if (confp == NULL)
-	    {
-	      confp = vty_use_backup_config (config_current_dir);
-	      if (confp)
-		fprintf (stderr, "WARNING: using backup configuration file!\n");
-	    }
-	}
-
-      /* If there is no relative path exists, open system default file. */
-      if (confp == NULL)
-	{
 #ifdef VTYSH
-	  int ret;
-	  struct stat conf_stat;
+      int ret;
+      struct stat conf_stat;
 
-	  /* !!!!PLEASE LEAVE!!!!
-	     This is NEEDED for use with vtysh -b, or else you can get
-	     a real configuration food fight with a lot garbage in the
-	     merged configuration file it creates coming from the per
-	     daemon configuration files.  This also allows the daemons
-	     to start if there default configuration file is not
-	     present or ignore them, as needed when using vtysh -b to
-	     configure the daemons at boot - MAG */
+      /* !!!!PLEASE LEAVE!!!!
+       * This is NEEDED for use with vtysh -b, or else you can get
+       * a real configuration food fight with a lot garbage in the
+       * merged configuration file it creates coming from the per
+       * daemon configuration files.  This also allows the daemons
+       * to start if there default configuration file is not
+       * present or ignore them, as needed when using vtysh -b to
+       * configure the daemons at boot - MAG
+       */
 
-	  /* Stat for vtysh Zebra.conf, if found startup and wait for
-	     boot configuration */
+      /* Stat for vtysh Zebra.conf, if found startup and wait for
+       * boot configuration
+       */
 
-	  if ( strstr(config_default_dir, "vtysh") == NULL)
-	    {
-	      ret = stat (integrate_default, &conf_stat);
-	      if (ret >= 0)
-		{
-		  return;
-		}
-	    }
+      if ( strstr(config_default_dir, "vtysh") == NULL)
+        {
+          ret = stat (integrate_default, &conf_stat);
+          if (ret >= 0)
+            return;
+        }
 #endif /* VTYSH */
 
-	  confp = fopen (config_default_dir, "r");
-	  if (confp == NULL)
-	    {
-	      confp = vty_use_backup_config (config_default_dir);
-	      if (confp)
-		{
-		  fprintf (stderr, "WARNING: using backup configuration file!\n");
-		  fullpath = config_default_dir;
-		}
-	      else
-		{
-		  fprintf (stderr, "can't open configuration file [%s]\n",
-			   config_default_dir);
-		  exit (1);
-		}
-	    }      
-	  else
-	    fullpath = config_default_dir;
-	}
+      confp = fopen (config_default_dir, "r");
+      if (confp == NULL)
+        {
+          confp = vty_use_backup_config (config_default_dir);
+          if (confp)
+            {
+              fprintf (stderr, "WARNING: using backup configuration file!\n");
+              fullpath = config_default_dir;
+            }
+          else
+            {
+              fprintf (stderr, "can't open configuration file [%s]\n",
+  		                 config_default_dir);
+  	          exit (1);
+  	        }
+        }      
       else
-	{
-	  /* Rleative path configuration file. */
-	  getcwd (cwd, MAXPATHLEN);
-	  fullpath = XMALLOC (MTYPE_TMP, 
-			      strlen (cwd) + strlen (config_current_dir) + 2);
-	  sprintf (fullpath, "%s/%s", cwd, config_current_dir);
-	}  
-    }  
+        fullpath = config_default_dir;
+    }
+
   vty_read_file (confp);
 
   fclose (confp);
diff --git a/lib/vty.h b/lib/vty.h
index fedfb3e..3cf9c4a 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -192,7 +192,7 @@
 void vty_finish (void);
 struct vty *vty_new (void);
 int vty_out (struct vty *, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
-void vty_read_config (char *, char *, char *);
+void vty_read_config (char *, char *);
 void vty_time_print (struct vty *, int);
 void vty_serv_sock (const char *, unsigned short, char *);
 void vty_close (struct vty *);
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index c22e90b..ffdad10 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -79,7 +79,6 @@
 };
 
 /* Configuration file and directory. */
-char config_current[] = OSPF6_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR OSPF6_DEFAULT_CONFIG;
 
 /* ospf6d program name. */
@@ -291,7 +290,7 @@
   sort_node ();
 
   /* parse config file */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   if (daemon_mode)
     daemon (0, 0);
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index 1ebc9e9..7e1567c 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -74,7 +74,6 @@
 };
 
 /* Configuration filename and directory. */
-char config_current[] = OSPF_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR OSPF_DEFAULT_CONFIG;
 
 /* OSPFd options. */
@@ -286,7 +285,7 @@
   sort_node ();
 
   /* Get configuration file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Change to the daemon program. */
   if (daemon_mode)
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index 530b13c..c2128e4 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -74,7 +74,6 @@
 };
 
 /* Configuration file and directory. */
-char config_current[] = RIPD_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR RIPD_DEFAULT_CONFIG;
 char *config_file = NULL;
 
@@ -131,7 +130,7 @@
   zlog_info ("ripd restarting!");
 
   /* Reload config file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Create VTY's socket */
   vty_serv_sock (vty_addr, vty_port, RIP_VTYSH_PATH);
@@ -274,7 +273,7 @@
   sort_node ();
 
   /* Get configuration file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Change to the daemon program. */
   if (daemon_mode)
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index eea4756..9219378 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -38,7 +38,6 @@
 #include "ripngd/ripngd.h"
 
 /* Configuration filename and directory. */
-char config_current[] = RIPNG_DEFAULT_CONFIG;
 char config_default[] = SYSCONFDIR RIPNG_DEFAULT_CONFIG;
 char *config_file = NULL;
 
@@ -135,7 +134,7 @@
   zlog_info ("Terminating on signal");
 
   /* Reload config file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
   /* Create VTY's socket */
   vty_serv_sock (vty_addr, vty_port, RIPNG_VTYSH_PATH);
 
@@ -276,7 +275,7 @@
   sort_node ();
 
   /* Get configuration file. */
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Change to the daemon program. */
   if (daemon_mode)
diff --git a/zebra/main.c b/zebra/main.c
index 3384d7d..1083ae5 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -95,7 +95,6 @@
 };
 
 /* Default configuration file path. */
-char config_current[] = DEFAULT_CONFIG_FILE;
 char config_default[] = SYSCONFDIR DEFAULT_CONFIG_FILE;
 
 /* Process ID saved for use by init system */
@@ -317,7 +316,7 @@
     rib_sweep_route ();
 
   /* Configuration file read*/
-  vty_read_config (config_file, config_current, config_default);
+  vty_read_config (config_file, config_default);
 
   /* Clean up rib. */
   rib_weed_tables ();
