2005-09-05 Paul Jakma <paul.jakma@sun.com>

	* command.c: (install_element) be more robust. Eg, cmd_init
	  need not have been called, some applications may use other
	  library subsystems, which call install_element, without the
          application wanting commands and hence not calling cmd_init.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index fd6e20b..08d6278 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-05 Paul Jakma <paul.jakma@sun.com>
+
+	* command.c: (install_element) be more robust. Eg, cmd_init
+	  need not have been called, some applications may use other
+	  library subsystems, which call install_element, without the
+          application wanting commands and hence not calling cmd_init.
+        
 2005-08-22 Hugo Santos <hsantos@av.it.pt>
 
 	* command.h: (enum node_type) Add BGP_IPV6M_NODE 
diff --git a/lib/command.c b/lib/command.c
index f642359..2b7ca9a 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -1,5 +1,5 @@
 /*
-   $Id: command.c,v 1.49 2005/08/22 22:39:56 paul Exp $
+   $Id: command.c,v 1.50 2005/09/05 11:54:13 paul Exp $
  
    Command interpreter routine for virtual terminal [aka TeletYpe]
    Copyright (C) 1997, 98, 99 Kunihiro Ishiguro
@@ -35,7 +35,7 @@
 
 /* Command vector which includes some level of command lists. Normally
    each daemon maintains each own cmdvec. */
-vector cmdvec;
+vector cmdvec = NULL;
 
 /* Host information structure. */
 struct host host;
@@ -475,7 +475,11 @@
 install_element (enum node_type ntype, struct cmd_element *cmd)
 {
   struct cmd_node *cnode;
-
+  
+  /* cmd_init hasn't been called */
+  if (!cmdvec)
+    return;
+  
   cnode = vector_slot (cmdvec, ntype);
 
   if (cnode == NULL)