diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c
index d4c84b3..3f58004 100644
--- a/babeld/babel_interface.c
+++ b/babeld/babel_interface.c
@@ -43,6 +43,7 @@
 #include "command.h"
 #include "prefix.h"
 #include "vector.h"
+#include "distribute.h"
 
 #include "babel_main.h"
 #include "util.h"
@@ -829,6 +830,24 @@
     return CMD_SUCCESS;
 }
 
+DEFUN (show_babel_running_config,
+       show_babel_running_config_cmd,
+       "show babel running-config",
+       SHOW_STR
+       IP_STR
+       "Babel information\n"
+       "Configuration information\n"
+       "No attributes\n")
+{
+    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);
+    config_show_distribute(vty);
+
+    return CMD_SUCCESS;
+}
+
 void
 babel_if_init ()
 {
@@ -864,6 +883,8 @@
     install_element(ENABLE_NODE, &show_babel_neighbour_cmd);
     install_element(VIEW_NODE, &show_babel_database_cmd);
     install_element(ENABLE_NODE, &show_babel_database_cmd);
+    install_element(VIEW_NODE, &show_babel_running_config_cmd);
+    install_element(ENABLE_NODE, &show_babel_running_config_cmd);
 }
 
 /* hooks: functions called respectively when struct interface is
diff --git a/babeld/babel_main.c b/babeld/babel_main.c
index 2ae8b91..0a958e6 100644
--- a/babeld/babel_main.c
+++ b/babeld/babel_main.c
@@ -527,3 +527,69 @@
         close(fd);
     }
 }
+
+void
+show_babel_main_configuration (struct vty *vty)
+{
+#ifdef NO_DEBUG
+    vty_out(vty, "No debug.%s", VTY_NEWLINE);
+#else
+    vty_out(vty, "Activated debug options:");
+    if (debug == BABEL_DEBUG_ALL) {
+        vty_out(vty, " all%s", VTY_NEWLINE);
+    } else {
+        vty_out(vty, "%s%s%s%s%s%s%s%s%s%s%s%s%s",
+                debug & BABEL_DEBUG_COMMON  ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_COMMON  ? "    common"   : "",
+                debug & BABEL_DEBUG_KERNEL  ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_KERNEL  ? "    kernel"   : "",
+                debug & BABEL_DEBUG_FILTER  ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_FILTER  ? "    filter"   : "",
+                debug & BABEL_DEBUG_TIMEOUT ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_TIMEOUT ? "    timeout"  : "",
+                debug & BABEL_DEBUG_IF      ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_IF      ? "    interface": "",
+                debug & BABEL_DEBUG_ROUTE   ? VTY_NEWLINE    : "",
+                debug & BABEL_DEBUG_ROUTE   ? "    route"    : "",
+                VTY_NEWLINE);
+    }
+#endif
+
+    vty_out(vty,
+            "pid file                = %s%s"
+            "state file              = %s%s"
+            "configuration file      = %s%s"
+            "protocol informations:%s"
+            "  multicast address     = %s%s"
+            "  port                  = %d%s"
+            "vty address             = %s%s"
+            "vty port                = %d%s"
+            "id                      = %s%s"
+            "idle time               = %d%s"
+            "wireless hello interval = %d%s"
+            "wired hello interval    = %d%s"
+            "idle hello interval     = %d%s"
+            "parasitic               = %s%s"
+            "split-horizon           = %s%s"
+            "allow_duplicates        = %s%s"
+            "kernel_metric           = %d%s",
+            pidfile, VTY_NEWLINE,
+            state_file, VTY_NEWLINE,
+            babel_config_file ? babel_config_file : babel_config_default,
+            VTY_NEWLINE,
+            VTY_NEWLINE,
+            format_address(protocol_group), VTY_NEWLINE,
+            protocol_port, VTY_NEWLINE,
+            babel_vty_addr ? babel_vty_addr : "None",
+            VTY_NEWLINE,
+            babel_vty_port, VTY_NEWLINE,
+            format_eui64(myid), VTY_NEWLINE,
+            idle_time, VTY_NEWLINE,
+            wireless_hello_interval, VTY_NEWLINE,
+            wired_hello_interval, VTY_NEWLINE,
+            idle_hello_interval, VTY_NEWLINE,
+            format_bool(parasitic), VTY_NEWLINE,
+            format_bool(split_horizon), VTY_NEWLINE,
+            format_bool(allow_duplicates), VTY_NEWLINE,
+            kernel_metric, VTY_NEWLINE);
+}
diff --git a/babeld/babel_main.h b/babeld/babel_main.h
index 2bacfab..a21a527 100644
--- a/babeld/babel_main.h
+++ b/babeld/babel_main.h
@@ -36,6 +36,8 @@
 THE SOFTWARE.
 */
 
+#include "vty.h"
+
 extern struct timeval babel_now;         /* current time             */
 extern struct thread_master *master;     /* quagga's threads handler */
 extern int debug;
@@ -52,3 +54,5 @@
 extern int protocol_socket;
 extern int kernel_socket;
 extern int max_request_hopcount;
+
+void show_babel_main_configuration (struct vty *vty);
diff --git a/babeld/babeld.c b/babeld/babeld.c
index 3dc35b5..9f2ab5d 100644
--- a/babeld/babeld.c
+++ b/babeld/babeld.c
@@ -764,3 +764,10 @@
 
     return babel_filter_redistribute(&p, NULL);
 }
+
+void
+show_babeld_configuration (struct vty *vty)
+{
+    vty_out(vty, "babeld running process %s.%s",
+            babel_routing_process ? "enable" : "disable", VTY_NEWLINE);
+}
diff --git a/babeld/babeld.h b/babeld/babeld.h
index 87b4de7..29bc5e8 100644
--- a/babeld/babeld.h
+++ b/babeld/babeld.h
@@ -41,6 +41,7 @@
 #define BABEL_BABELD_H
 
 #include <zebra.h>
+#include "vty.h"
 
 #define INFINITY ((unsigned short)(~0))
 
@@ -131,6 +132,7 @@
                                unsigned int ifindex, int proto);
 extern int resize_receive_buffer(int size);
 extern void schedule_neighbours_check(int msecs, int override);
+extern void show_babeld_configuration (struct vty *vty);
 
 
 #endif /* BABEL_BABELD_H */
diff --git a/babeld/util.c b/babeld/util.c
index f1ac0f1..514e0ff 100644
--- a/babeld/util.c
+++ b/babeld/util.c
@@ -298,6 +298,10 @@
     return buf[i];
 }
 
+const char *format_bool(const int b) {
+    return b ? "true" : "false";
+}
+
 int
 parse_address(const char *address, unsigned char *addr_r, int *af_r)
 {
diff --git a/babeld/util.h b/babeld/util.h
index 4e7635f..d64169b 100644
--- a/babeld/util.h
+++ b/babeld/util.h
@@ -111,6 +111,7 @@
 const char *format_address(const unsigned char *address);
 const char *format_prefix(const unsigned char *address, unsigned char prefix);
 const char *format_eui64(const unsigned char *eui);
+const char *format_bool(const int b);
 int parse_address(const char *address, unsigned char *addr_r, int *af_r);
 int parse_net(const char *ifp, unsigned char *prefix_r, unsigned char *plen_r,
               int *af_r);
