diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index 5ab208b..cc4356c 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -499,7 +499,7 @@
 
 ALIAS (show_ipv6_ospf6_route,
        show_ipv6_ospf6_route_detail_cmd,
-       "show ipv6 ospf6 route (X::X|X::X/M|detail|summary)",
+       "show ipv6 ospf6 route (X:X::X:X|X:X::X:X/M|detail|summary)",
        SHOW_STR
        IP6_STR
        OSPF6_STR
@@ -512,7 +512,7 @@
 
 DEFUN (show_ipv6_ospf6_route_match,
        show_ipv6_ospf6_route_match_cmd,
-       "show ipv6 ospf6 route X::X/M match",
+       "show ipv6 ospf6 route X:X::X:X/M match",
        SHOW_STR
        IP6_STR
        OSPF6_STR
@@ -537,7 +537,7 @@
 
 DEFUN (show_ipv6_ospf6_route_match_detail,
        show_ipv6_ospf6_route_match_detail_cmd,
-       "show ipv6 ospf6 route X::X/M match detail",
+       "show ipv6 ospf6 route X:X::X:X/M match detail",
        SHOW_STR
        IP6_STR
        OSPF6_STR
@@ -562,6 +562,46 @@
   return CMD_SUCCESS;
 }
 
+ALIAS (show_ipv6_ospf6_route,
+       show_ipv6_ospf6_route_type_cmd,
+       "show ipv6 ospf6 route (intra-area|inter-area|external-1|external-2)",
+       SHOW_STR
+       IP6_STR
+       OSPF6_STR
+       ROUTE_STR
+       "Dispaly Intra-Area routes\n"
+       "Dispaly Inter-Area routes\n"
+       "Dispaly Type-1 External routes\n"
+       "Dispaly Type-2 External routes\n"
+       );
+
+DEFUN (show_ipv6_ospf6_route_type_detail,
+       show_ipv6_ospf6_route_type_detail_cmd,
+       "show ipv6 ospf6 route (intra-area|inter-area|external-1|external-2) detail",
+       SHOW_STR
+       IP6_STR
+       OSPF6_STR
+       ROUTE_STR
+       "Dispaly Intra-Area routes\n"
+       "Dispaly Inter-Area routes\n"
+       "Dispaly Type-1 External routes\n"
+       "Dispaly Type-2 External routes\n"
+       "Detailed information\n"
+       )
+{
+  char *sargv[CMD_ARGC_MAX];
+  int i, sargc;
+
+  /* copy argv to sargv and then append "detail" */
+  for (i = 0; i < argc; i++)
+    sargv[i] = argv[i];
+  sargc = argc;
+  sargv[sargc++] = "detail";
+  sargv[sargc] = NULL;
+
+  ospf6_route_table_show (vty, sargc, sargv, ospf6->route_table);
+  return CMD_SUCCESS;
+}
 
 /* OSPF configuration write function. */
 int
@@ -622,10 +662,14 @@
   install_element (VIEW_NODE, &show_ipv6_ospf6_route_detail_cmd);
   install_element (VIEW_NODE, &show_ipv6_ospf6_route_match_cmd);
   install_element (VIEW_NODE, &show_ipv6_ospf6_route_match_detail_cmd);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_route_type_cmd);
+  install_element (VIEW_NODE, &show_ipv6_ospf6_route_type_detail_cmd);
   install_element (ENABLE_NODE, &show_ipv6_ospf6_route_cmd);
   install_element (ENABLE_NODE, &show_ipv6_ospf6_route_detail_cmd);
   install_element (ENABLE_NODE, &show_ipv6_ospf6_route_match_cmd);
   install_element (ENABLE_NODE, &show_ipv6_ospf6_route_match_detail_cmd);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_type_cmd);
+  install_element (ENABLE_NODE, &show_ipv6_ospf6_route_type_detail_cmd);
 
   install_default (OSPF6_NODE);
   install_element (OSPF6_NODE, &ospf6_router_id_cmd);
