diff --git a/lib/if.c b/lib/if.c
index 2ca8c94..e1a1839 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -440,32 +440,6 @@
   return CMD_SUCCESS;
 }
 
-DEFUN_NOSH (no_interface,
-           no_interface_cmd,
-           "no interface IFNAME",
-           NO_STR
-           "Delete a pseudo interface's configuration\n"
-           "Interface's name\n")
-{
-  // deleting interface
-  struct interface *ifp;
-
-  ifp = if_lookup_by_name (argv[0]);
-
-  if (ifp == NULL)
-    return CMD_SUCCESS;
-
-  if (if_is_up(ifp)) {
-    vty_out (vty, "%% Only inactive interfaces can be deleted%s",
-            VTY_NEWLINE);
-    return CMD_WARNING;
-  }
-
-  if_delete(ifp);
-
-  return CMD_SUCCESS;
-}
-
 /* For debug purpose. */
 DEFUN (show_address,
        show_address_cmd,
diff --git a/lib/if.h b/lib/if.h
index 9ffe74c..554126f 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -220,7 +220,6 @@
 extern struct cmd_element interface_desc_cmd;
 extern struct cmd_element no_interface_desc_cmd;
 extern struct cmd_element interface_cmd;
-extern struct cmd_element no_interface_cmd;
 extern struct cmd_element interface_pseudo_cmd;
 extern struct cmd_element no_interface_pseudo_cmd;
 
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index 04609ba..8b50b5a 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -729,7 +729,6 @@
   install_element (ENABLE_NODE, &reload_cmd);
   install_element (CONFIG_NODE, &router_ospf6_cmd);
   install_element (CONFIG_NODE, &interface_cmd);
-  install_element (CONFIG_NODE, &no_interface_cmd);
 #ifdef OSPF6_STATISTICS
   install_element (VIEW_NODE, &show_ipv6_ospf6_statistics_cmd);
   install_element (ENABLE_NODE, &show_ipv6_ospf6_statistics_cmd);
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index ed4b4fd..482ef6f 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -7377,7 +7377,6 @@
   install_node (&interface_node, config_write_interface);
 
   install_element (CONFIG_NODE, &interface_cmd);
-  install_element (CONFIG_NODE, &no_interface_cmd);
   install_default (INTERFACE_NODE);
 
   /* "description" commands. */
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 369c3d6..c177381 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -822,7 +822,6 @@
   install_node (&interface_node, interface_config_write);
 
   install_element (CONFIG_NODE, &interface_cmd);
-  install_element (CONFIG_NODE, &no_interface_cmd);
   install_element (INTERFACE_NODE, &config_end_cmd);
   install_element (INTERFACE_NODE, &config_exit_cmd);
   install_element (INTERFACE_NODE, &config_help_cmd);
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index f6ab603..be1f03e 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -1165,13 +1165,6 @@
   return CMD_SUCCESS;
 }
 
-DEFSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_RIPNGD|VTYSH_OSPFD|VTYSH_OSPF6D,
-       vtysh_no_interface_cmd,
-       "no interface IFNAME",
-       NO_STR
-       "Delete a pseudo interface's configuration\n"
-       "Interface's name\n")
-
 DEFSH (VTYSH_ZEBRA|VTYSH_RIPD|VTYSH_OSPFD,
        interface_desc_cmd,
        "description .LINE",
@@ -1845,7 +1838,6 @@
   install_element (KEYCHAIN_NODE, &key_chain_cmd);
   install_element (KEYCHAIN_KEY_NODE, &key_chain_cmd);
   install_element (CONFIG_NODE, &vtysh_interface_cmd);
-  install_element (CONFIG_NODE, &vtysh_no_interface_cmd);
   install_element (ENABLE_NODE, &vtysh_show_running_config_cmd);
   install_element (ENABLE_NODE, &vtysh_copy_runningconfig_startupconfig_cmd);
   install_element (ENABLE_NODE, &vtysh_write_file_cmd);
diff --git a/zebra/interface.c b/zebra/interface.c
index c9f7132..ed3ece2 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -674,7 +674,7 @@
   return ret;
 }
 
-DEFUN_NOSH (no_zebra_interface,
+DEFUN (no_zebra_interface,
        no_zebra_interface_cmd,
        "no interface IFNAME",
        "Delete a pseudo interface's configuration\n"
@@ -694,7 +694,7 @@
 
   if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
     {
-      vty_out(vty, "%% Only inactive interfaces can be deleted%s", VTY_NEWLINE);
+      vty_out(vty, "Only inactive interfaces can be deleted%s", VTY_NEWLINE);
       return CMD_WARNING;
     }
 
