diff --git a/babeld/babel_zebra.c b/babeld/babel_zebra.c
index 7ba1adf..e68c2b7 100644
--- a/babeld/babel_zebra.c
+++ b/babeld/babel_zebra.c
@@ -46,6 +46,7 @@
 #include "babel_zebra.h"
 #include "babel_interface.h"
 #include "xroute.h"
+#include "util.h"
 
 void babelz_zebra_init(void);
 
@@ -67,6 +68,22 @@
     {0, 0, NULL}
 };
 
+/* Debug types */
+static struct {
+    int type;
+    int str_min_len;
+    const char *str;
+} debug_type[] = {
+    {BABEL_DEBUG_COMMON,  1, "common"},
+    {BABEL_DEBUG_KERNEL,  1, "kernel"},
+    {BABEL_DEBUG_FILTER,  1, "filter"},
+    {BABEL_DEBUG_TIMEOUT, 1, "timeout"},
+    {BABEL_DEBUG_IF,      1, "interface"},
+    {BABEL_DEBUG_ROUTE,   1, "route"},
+    {BABEL_DEBUG_ALL,     1, "all"},
+    {0, 0, NULL}
+};
+
 /* Zebra node structure. */
 struct cmd_node zebra_node =
 {
@@ -252,6 +269,64 @@
     return CMD_WARNING;
 }
 
+#ifndef NO_DEBUG
+/* [Babel Command] */
+DEFUN (babel_debug,
+       babel_debug_cmd,
+       "debug (common|kernel|filter|timeout|interface|route|all)",
+       "Enable debug messages for specific or all part.\n"
+       "Common messages (default)\n"
+       "Kernel messages\n"
+       "Filter messages\n"
+       "Timeout messages\n"
+       "Interface messages\n"
+       "Route messages\n"
+       "All messages\n")
+{
+    int i;
+
+    for(i = 0; debug_type[i].str != NULL; i++) {
+        if (strncmp (debug_type[i].str, argv[0],
+                     debug_type[i].str_min_len) == 0) {
+            debug |= debug_type[i].type;
+            return CMD_SUCCESS;
+        }
+    }
+
+    vty_out(vty, "Invalid type %s%s", argv[0], VTY_NEWLINE);
+
+    return CMD_WARNING;
+}
+
+/* [Babel Command] */
+DEFUN (no_babel_debug,
+       no_babel_debug_cmd,
+       "no debug (common|kernel|filter|timeout|interface|route|all)",
+       NO_STR
+       "Disable debug messages for specific or all part.\n"
+       "Common messages (default)\n"
+       "Kernel messages\n"
+       "Filter messages\n"
+       "Timeout messages\n"
+       "Interface messages\n"
+       "Route messages\n"
+       "All messages\n")
+{
+    int i;
+
+    for (i = 0; debug_type[i].str; i++) {
+        if (strncmp(debug_type[i].str, argv[0],
+                    debug_type[i].str_min_len) == 0) {
+            debug &= ~debug_type[i].type;
+        }
+    }
+
+    vty_out(vty, "Invalid type %s%s", argv[0], VTY_NEWLINE);
+
+    return CMD_WARNING;
+}
+#endif /* NO_DEBUG */
+
 
 void babelz_zebra_init(void)
 {
@@ -272,6 +347,8 @@
     install_node (&zebra_node, zebra_config_write);
     install_element(BABEL_NODE, &babel_redistribute_type_cmd);
     install_element(BABEL_NODE, &no_babel_redistribute_type_cmd);
+    install_element(BABEL_NODE, &babel_debug_cmd);
+    install_element(BABEL_NODE, &no_babel_debug_cmd);
 }
 
 static int
