diff --git a/ospf6d/ospf6_area.c b/ospf6d/ospf6_area.c
index 0967482..1861fe7 100644
--- a/ospf6d/ospf6_area.c
+++ b/ospf6d/ospf6_area.c
@@ -666,6 +666,8 @@
   struct ospf6_route *route;
   struct prefix prefix;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_linkstate_prefix (ospf6->router_id, htonl (0), &prefix);
 
   for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa))
@@ -701,6 +703,8 @@
   struct ospf6_route *route;
   struct prefix prefix;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_linkstate_prefix (ospf6->router_id, htonl (0), &prefix);
 
   if (inet_pton (AF_INET, argv[0], &area_id) != 1)
@@ -747,6 +751,8 @@
   struct ospf6_route_table *spf_table;
   unsigned char tmp_debug_ospf6_spf = 0;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   inet_pton (AF_INET, argv[0], &router_id);
   ospf6_linkstate_prefix (router_id, htonl (0), &prefix);
 
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 6db1ca9..265a178 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -1291,6 +1291,8 @@
 {
   struct ospf6_route *route;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_redistribute_show_config (vty);
 
   for (route = ospf6_route_head (ospf6->external_table); route;
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index 145a88e..7ec4309 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -1155,6 +1155,8 @@
        ROUTE_STR
        )
 {
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_route_table_show (vty, argc, argv, ospf6->route_table);
   return CMD_SUCCESS;
 }
@@ -1186,6 +1188,8 @@
   const char *sargv[CMD_ARGC_MAX];
   int i, sargc;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   /* copy argv to sargv and then append "match" */
   for (i = 0; i < argc; i++)
     sargv[i] = argv[i];
@@ -1220,6 +1224,8 @@
   sargv[sargc++] = "detail";
   sargv[sargc] = NULL;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_route_table_show (vty, sargc, sargv, ospf6->route_table);
   return CMD_SUCCESS;
 }
@@ -1284,6 +1290,8 @@
   sargv[sargc++] = "detail";
   sargv[sargc] = NULL;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   ospf6_route_table_show (vty, sargc, sargv, ospf6->route_table);
   return CMD_SUCCESS;
 }
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index f9b0322..eae01af 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -1690,6 +1690,8 @@
   struct listnode *node;
   struct ospf6_area *oa;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   for (ALL_LIST_ELEMENTS_RO (ospf6->area_list, node, oa))
     {
       vty_out (vty, "%s        SPF Result in Area %s%s%s",
@@ -1738,6 +1740,8 @@
   struct listnode *node;
   struct ospf6_area *oa;
 
+  OSPF6_CMD_CHECK_RUNNING ();
+
   /* copy argv to sargv and then append "detail" */
   for (i = 0; i < argc; i++)
     sargv[i] = argv[i];
