diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c
index 7fc68fa..7037791 100644
--- a/bgpd/bgp_main.c
+++ b/bgpd/bgp_main.c
@@ -113,7 +113,7 @@
   vty_read_config (config_file, config_current, config_default);
 
   /* Create VTY's socket */
-  vty_serv_sock (vty_addr, vty_port ? vty_port : BGP_VTY_PORT, BGP_VTYSH_PATH);
+  vty_serv_sock (vty_addr, vty_port, BGP_VTYSH_PATH);
 
   /* Try to return to normal operation. */
 }
@@ -222,7 +222,15 @@
 	  vty_addr = optarg;
 	  break;
 	case 'P':
-	  vty_port = atoi (optarg);
+          /* Deal with atoi() returning 0 on failure, and bgpd not
+             listening on bgp port... */
+          if (strcmp(optarg, "0") == 0) 
+            {
+              vty_port = 0;
+              break;
+            } 
+          vty_port = atoi (optarg);
+          vty_port = (vty_port ? vty_port : BGP_VTY_PORT);
 	  break;
 	case 'r':
 	  retain_mode = 1;
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 5ab517f..3f3d550 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -206,7 +206,7 @@
   char *p;
   int opt;
   char *vty_addr = NULL;
-  int vty_port = 0;
+  int vty_port = OSPF6_VTY_PORT;
   char *config_file = NULL;
   char *progname;
   struct thread thread;
@@ -253,8 +253,16 @@
           pid_file = optarg;
           break;
         case 'P':
+         /* Deal with atoi() returning 0 on failure, and ospf6d not
+             listening on ospf6d port... */
+          if (strcmp(optarg, "0") == 0) 
+            {
+              vty_port = 0;
+              break;
+            } 
           vty_port = atoi (optarg);
-          break;
+          vty_port = (vty_port ? vty_port : OSPF6_VTY_PORT);
+	  break;
         case 'v':
           print_version (progname);
           exit (0);
@@ -305,8 +313,7 @@
   thread_add_read (master, ospf6_receive, NULL, ospf6_sock);
 
   /* Make ospf vty socket. */
-  vty_serv_sock (vty_addr,
-		 vty_port ? vty_port : OSPF6_VTY_PORT, OSPF6_VTYSH_PATH);
+  vty_serv_sock (vty_addr, vty_port, OSPF6_VTYSH_PATH);
 
   /* Print start message */
   zlog_notice ("OSPF6d (Zebra-%s ospf6d-%s) starts",
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index 82960b2..6f6262a 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -170,7 +170,7 @@
 {
   char *p;
   char *vty_addr = NULL;
-  int vty_port = 0;
+  int vty_port = OSPF_VTY_PORT;
   int daemon_mode = 0;
   char *config_file = NULL;
   char *progname;
@@ -219,8 +219,16 @@
           pid_file = optarg;
           break;
 	case 'P':
-	  vty_port = atoi (optarg);
-	  break;
+          /* Deal with atoi() returning 0 on failure, and ospfd not
+             listening on ospfd port... */
+          if (strcmp(optarg, "0") == 0) 
+            {
+              vty_port = 0;
+              break;
+            } 
+          vty_port = atoi (optarg);
+          vty_port = (vty_port ? vty_port : OSPF_VTY_PORT);
+  	  break;
 	case 'v':
 	  print_version (progname);
 	  exit (0);
@@ -277,8 +285,7 @@
   pid_output (pid_file);
 
   /* Create VTY socket */
-  vty_serv_sock (vty_addr,
-		 vty_port ? vty_port : OSPF_VTY_PORT, OSPF_VTYSH_PATH);
+  vty_serv_sock (vty_addr, vty_port, OSPF_VTYSH_PATH);
 
   /* Print banner. */
   zlog (NULL, LOG_INFO, "OSPFd (%s) starts", ZEBRA_VERSION);
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index 1070fb4..5e56052 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -211,7 +211,15 @@
           pid_file = optarg;
           break;
 	case 'P':
-	  vty_port = atoi (optarg);
+          /* Deal with atoi() returning 0 on failure, and ripd not
+             listening on rip port... */
+          if (strcmp(optarg, "0") == 0) 
+            {
+              vty_port = 0;
+              break;
+            } 
+          vty_port = atoi (optarg);
+          vty_port = (vty_port ? vty_port : RIP_VTY_PORT);
 	  break;
 	case 'r':
 	  retain_mode = 1;
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index aec74bb..3a7ed4a 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -155,7 +155,7 @@
 {
   char *p;
   char *vty_addr = NULL;
-  int vty_port = 0;
+  int vty_port = RIPNG_VTY_PORT;
   int daemon_mode = 0;
   char *config_file = NULL;
   char *progname;
@@ -197,10 +197,18 @@
 	  break;
         case 'i':
           pid_file = optarg;
-          break;
+          break; 
 	case 'P':
-	  vty_port = atoi (optarg);
-	  break;
+          /* Deal with atoi() returning 0 on failure, and ripngd not
+             listening on ripngd port... */
+          if (strcmp(optarg, "0") == 0) 
+            {
+              vty_port = 0;
+              break;
+            } 
+          vty_port = atoi (optarg);
+          vty_port = (vty_port ? vty_port : RIPNG_VTY_PORT);
+          break;
 	case 'r':
 	  retain_mode = 1;
 	  break;
@@ -237,8 +245,7 @@
     daemon (0, 0);
 
   /* Create VTY socket */
-  vty_serv_sock (vty_addr,
-		 vty_port ? vty_port : RIPNG_VTY_PORT, RIPNG_VTYSH_PATH);
+  vty_serv_sock (vty_addr, vty_port, RIPNG_VTYSH_PATH);
 
   /* Process id file create. */
   pid_output (pid_file);
diff --git a/zebra/main.c b/zebra/main.c
index 25d8b6d..66469a2 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -174,7 +174,7 @@
 {
   char *p;
   char *vty_addr = NULL;
-  int vty_port = 0;
+  int vty_port = ZEBRA_VTY_PORT;
   int batch_mode = 0;
   int daemon_mode = 0;
   char *config_file = NULL;
@@ -226,7 +226,15 @@
           pid_file = optarg;
           break;
 	case 'P':
+	  /* Deal with atoi() returning 0 on failure, and zebra not
+	     listening on zebra port... */
+	  if (strcmp(optarg, "0") == 0) 
+	    {
+	      vty_port = 0;
+	      break;
+	    } 
 	  vty_port = atoi (optarg);
+	  vty_port = (vty_port ? vty_port : ZEBRA_VTY_PORT);
 	  break;
 	case 'r':
 	  retain_mode = 1;
@@ -305,8 +313,7 @@
   pid = getpid ();
 
   /* Make vty server socket. */
-  vty_serv_sock (vty_addr,
-		 vty_port ? vty_port : ZEBRA_VTY_PORT, ZEBRA_VTYSH_PATH);
+  vty_serv_sock (vty_addr, vty_port, ZEBRA_VTYSH_PATH);
 
   while (thread_fetch (master, &thread))
     thread_call (&thread);
