diff --git a/lib/ChangeLog b/lib/ChangeLog
index 6701a90..57bb3d1 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-05 Paul Jakma <paul@dishone.st>
+
+	* vty.c: Improve logging of failures to open vty socket(s).
+	  See bugid #163.
+
 2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* if.h: Fix comments to reflect that if_lookup_by_name and
diff --git a/lib/vty.c b/lib/vty.c
index eca1523..44439a9 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2297,13 +2297,16 @@
 
       if (confp == NULL)
         {
+          fprintf (stderr, "%s: failed to open configuration file %s: %s\n",
+                   __func__, fullpath, safe_strerror (errno));
+          
           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);
+  	               config_file);
               exit(1);
             }
         }
@@ -2339,6 +2342,9 @@
       confp = fopen (config_default_dir, "r");
       if (confp == NULL)
         {
+          fprintf (stderr, "%s: failed to open configuration file %s: %s\n",
+                   __func__, config_default_dir, safe_strerror (errno));
+          
           confp = vty_use_backup_config (config_default_dir);
           if (confp)
             {
@@ -2350,7 +2356,7 @@
               fprintf (stderr, "can't open configuration file [%s]\n",
   		                 config_default_dir);
   	          exit (1);
-  	        }
+            }
         }      
       else
         fullpath = config_default_dir;
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 1d0f175..55e290c 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,8 @@
+2005-04-05 Paul Jakma <paul@dishone.st>
+
+	* zserv.c: print more helpful errors when we fail to successfully
+	  bind and listen on zserv socket. Closes bugzilla #163.
+
 2005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* if_ioctl.c: (interface_list_ioctl) Use if_get_by_name_len.
diff --git a/zebra/zserv.c b/zebra/zserv.c
index caebe49..a34e214 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -1360,7 +1360,8 @@
 
   if (accept_sock < 0) 
     {
-      zlog_warn ("Can't bind to socket: %s", safe_strerror (errno));
+      zlog_warn ("Can't create zserv stream socket: %s", 
+                 safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       return;
     }
@@ -1383,7 +1384,8 @@
 	       sizeof (struct sockaddr_in));
   if (ret < 0)
     {
-      zlog_warn ("Can't bind to socket: %s", safe_strerror (errno));
+      zlog_warn ("Can't bind to stream socket: %s", 
+                 safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       close (accept_sock);      /* Avoid sd leak. */
       return;
@@ -1395,7 +1397,8 @@
   ret = listen (accept_sock, 1);
   if (ret < 0)
     {
-      zlog_warn ("Can't listen to socket: %s", safe_strerror (errno));
+      zlog_warn ("Can't listen to stream socket: %s", 
+                 safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       close (accept_sock);	/* Avoid sd leak. */
       return;
@@ -1427,7 +1430,9 @@
   sock = socket (AF_UNIX, SOCK_STREAM, 0);
   if (sock < 0)
     {
-      perror ("sock");
+      zlog_warn ("Can't create zserv unix socket: %s", 
+                 safe_strerror (errno));
+      zlog_warn ("zebra can't provide full functionality due to above error");
       return;
     }
 
@@ -1444,7 +1449,9 @@
   ret = bind (sock, (struct sockaddr *) &serv, len);
   if (ret < 0)
     {
-      perror ("bind");
+      zlog_warn ("Can't bind to unix socket %s: %s", 
+                 path, safe_strerror (errno));
+      zlog_warn ("zebra can't provide full functionality due to above error");
       close (sock);
       return;
     }
@@ -1452,7 +1459,9 @@
   ret = listen (sock, 5);
   if (ret < 0)
     {
-      perror ("listen");
+      zlog_warn ("Can't listen to unix socket %s: %s", 
+                 path, safe_strerror (errno));
+      zlog_warn ("zebra can't provide full functionality due to above error");
       close (sock);
       return;
     }
