diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c
index a874289..906f349 100644
--- a/babeld/babel_interface.c
+++ b/babeld/babel_interface.c
@@ -429,13 +429,14 @@
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
+    int interval;
 
-    int interval = atoi(argv[0]);
+    VTY_GET_INTEGER_RANGE("hello interval", interval, argv[0], 20, 10 * 0xFFFE);
 
     ifp = vty->index;
     babel_ifp = babel_get_if_nfo(ifp);
-
     assert (babel_ifp != NULL);
+
     babel_ifp->hello_interval = interval;
     return CMD_SUCCESS;
 }
@@ -450,7 +451,7 @@
     if (allow_duplicates) {
         return CMD_WARNING;
     }
-    parasitic = -1;
+    parasitic = 1;
     return CMD_SUCCESS;
 }
 
@@ -900,7 +901,7 @@
     vty_out(vty, "    -- Babel running configuration --%s", VTY_NEWLINE);
     show_babel_main_configuration(vty);
     show_babeld_configuration(vty);
-    vty_out(vty, "    -- ditribution lists --%s", VTY_NEWLINE);
+    vty_out(vty, "    -- distribution lists --%s", VTY_NEWLINE);
     config_show_distribute(vty);
 
     return CMD_SUCCESS;
diff --git a/babeld/babel_main.c b/babeld/babel_main.c
index 951da7d..a75171e 100644
--- a/babeld/babel_main.c
+++ b/babeld/babel_main.c
@@ -227,8 +227,7 @@
                 break;
             case 'P':
                 babel_vty_port = atoi (optarg);
-                if (babel_vty_port < 0 || babel_vty_port > 0xffff
-                    || (babel_vty_port == 0 && optarg[0] != '0'/*atoi error*/))
+                if (babel_vty_port <= 0 || babel_vty_port > 0xffff)
                     babel_vty_port = BABEL_VTY_PORT;
                 break;
             case 'u':
diff --git a/babeld/babeld.c b/babeld/babeld.c
index 33b5d9e..da07434 100644
--- a/babeld/babeld.c
+++ b/babeld/babeld.c
@@ -608,6 +608,7 @@
         /* Notice to user we couldn't create Babel. */
         if (ret < 0) {
             zlog_warn ("can't create Babel");
+            return CMD_WARNING;
         }
     }
 
@@ -666,9 +667,11 @@
        "Set the protocol port (default is defined in RFC).\n"
        "IPv6 address")
 {
-    int port = atoi(argv[0]);
-    protocol_port = port;
+    int port;
 
+    VTY_GET_INTEGER_RANGE("port", port, argv[0], 1, 0xFFFF);
+
+    protocol_port = port;
     return CMD_SUCCESS;
 }
 
