diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c
index 0f254ec..bc58b7e 100644
--- a/babeld/babel_interface.c
+++ b/babeld/babel_interface.c
@@ -293,7 +293,7 @@
 DEFUN (babel_network,
        babel_network_cmd,
        "network IF_OR_ADDR",
-       "Babel enable on specified interface or network.\n"
+       "Enable Babel protocol on specified interface or network.\n"
        "Interface or address")
 {
     int ret;
@@ -321,7 +321,7 @@
        no_babel_network_cmd,
        "no network IF_OR_ADDR",
        NO_STR
-       "Babel enable on specified interface or network.\n"
+       "Disable Babel protocol on specified interface or network.\n"
        "Interface or address")
 {
     int ret;
@@ -348,8 +348,8 @@
 DEFUN (babel_set_wired,
        babel_set_wired_cmd,
        "babel wired",
-       "Set this interface as wired (default: wireless).\n"
-       "No attributes")
+       "Babel interface commands\n"
+       "Enable wired optimisations")
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
@@ -366,9 +366,8 @@
 DEFUN (babel_set_wireless,
        babel_set_wireless_cmd,
        "babel wireless",
-       NO_STR
-       "Set this interface as wireless (is default).\n"
-       "No attributes")
+       "Babel interface commands\n"
+       "Disable wired optimiations (assume wireless)")
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
@@ -385,9 +384,8 @@
 DEFUN (babel_split_horizon,
        babel_split_horizon_cmd,
        "babel split-horizon",
-       IPV6_STR
-       "Perform split horizon\n"
-       "No attributes\n")
+       "Babel interface commands\n"
+       "Enable split horizon processing")
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
@@ -405,9 +403,8 @@
        no_babel_split_horizon_cmd,
        "no babel split-horizon",
        NO_STR
-       IPV6_STR
-       "Disable split horizon\n"
-       "No attributes\n")
+       "Babel interface commands\n"
+       "Disable split horizon processing")
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
@@ -423,15 +420,16 @@
 /* [Interface Command]. */
 DEFUN (babel_set_hello_interval,
        babel_set_hello_interval_cmd,
-       "hello interval <5-1000000>",
-       "Set interface's hello interval (default: 4000).\n"
-       "Value in miliseconds\n")
+       "babel hello-interval <20-655340>",
+       "Babel interface commands\n"
+       "Time between scheduled hellos\n"
+       "Milliseconds\n")
 {
     struct interface *ifp;
     babel_interface_nfo *babel_ifp;
     int interval;
 
-    VTY_GET_INTEGER_RANGE("hello interval", interval, argv[0], 20, 10 * 0xFFFE);
+    VTY_GET_INTEGER_RANGE("milliseconds", interval, argv[0], 20, 10 * 0xFFFE);
 
     ifp = vty->index;
     babel_ifp = babel_get_if_nfo(ifp);
@@ -442,11 +440,33 @@
 }
 
 /* [Interface Command]. */
+DEFUN (babel_set_update_interval,
+       babel_set_update_interval_cmd,
+       "babel update-interval <20-655340>",
+       "Babel interface commands\n"
+       "Time between scheduled updates\n"
+       "Milliseconds\n")
+{
+    struct interface *ifp;
+    babel_interface_nfo *babel_ifp;
+    int interval;
+
+    VTY_GET_INTEGER_RANGE("milliseconds", interval, argv[0], 20, 10 * 0xFFFE);
+
+    ifp = vty->index;
+    babel_ifp = babel_get_if_nfo(ifp);
+    assert (babel_ifp != NULL);
+
+    babel_ifp->update_interval = interval;
+    return CMD_SUCCESS;
+}
+
+/* [Interface Command]. */
 DEFUN (babel_passive_interface,
        babel_passive_interface_cmd,
-       "passive-interface",
-       "The daemon will only announce redistributed routes\n"
-       "No attributes\n")
+       "babel passive-interface",
+       "Babel interface commands\n"
+       "Only announce redistributed routes on this interface\n")
 {
     if (allow_duplicates) {
         return CMD_WARNING;
@@ -458,10 +478,10 @@
 /* [Interface Command]. */
 DEFUN (no_babel_passive_interface,
        no_babel_passive_interface_cmd,
-       "no passive-interface",
+       "no babel passive-interface",
        NO_STR
-       "The daemon will announce all (filtred) routes\n"
-       "No attributes\n")
+       "Babel interface commands\n"
+       "Announce all routes on this interface\n")
 {
     parasitic = 0;
     return CMD_SUCCESS;
@@ -899,6 +919,7 @@
     install_element(INTERFACE_NODE, &babel_set_wired_cmd);
     install_element(INTERFACE_NODE, &babel_set_wireless_cmd);
     install_element(INTERFACE_NODE, &babel_set_hello_interval_cmd);
+    install_element(INTERFACE_NODE, &babel_set_update_interval_cmd);
     install_element(INTERFACE_NODE, &babel_passive_interface_cmd);
     install_element(INTERFACE_NODE, &no_babel_passive_interface_cmd);
 
diff --git a/babeld/babeld.c b/babeld/babeld.c
index f42a81b..07dd92a 100644
--- a/babeld/babeld.c
+++ b/babeld/babeld.c
@@ -629,6 +629,22 @@
     return CMD_SUCCESS;
 }
 
+/* [Babel Command] */
+DEFUN (babel_set_resend_delay,
+       babel_set_resend_delay_cmd,
+       "babel resend-delay <20-655340>",
+       "Babel commands\n"
+       "Time before resending a message\n"
+       "Milliseconds\n")
+{
+    int interval;
+
+    VTY_GET_INTEGER_RANGE("milliseconds", interval, argv[0], 20, 10 * 0xFFFE);
+
+    resend_delay = interval;
+    return CMD_SUCCESS;
+}
+
 void
 babeld_quagga_init(void)
 {
@@ -639,6 +655,7 @@
     install_element(CONFIG_NODE, &no_router_babel_cmd);
 
     install_default(BABEL_NODE);
+    install_element(BABEL_NODE, &babel_set_resend_delay_cmd);
 
     babel_if_init();
 
