*** src/listnode.c~0	Sun Nov 12 00:08:52 1989
--- src/listnode.c	Thu Mar 27 18:59:10 1997
*************** make_list_node (k, len)
*** 63,72 ****
       char *k;
       int len;
  {
! 	LIST_NODE *buffered_malloc ();
    int char_set_size = OPTION_ENABLED (option, ALLCHARS) ? len : GET_CHARSET_SIZE (option) + 1;
    LIST_NODE *temp = buffered_malloc (sizeof (LIST_NODE) + char_set_size);
    char *ptr = temp->char_set;
  
    k[len]       = '\0';        /* Null terminate KEY to separate it from REST. */
    temp->key    = k;
--- 63,73 ----
       char *k;
       int len;
  {
!   LIST_NODE *buffered_malloc ();
    int char_set_size = OPTION_ENABLED (option, ALLCHARS) ? len : GET_CHARSET_SIZE (option) + 1;
    LIST_NODE *temp = buffered_malloc (sizeof (LIST_NODE) + char_set_size);
    char *ptr = temp->char_set;
+   int klen = strlen (k);
  
    k[len]       = '\0';        /* Null terminate KEY to separate it from REST. */
    temp->key    = k;
*************** make_list_node (k, len)
*** 74,80 ****
    temp->index  = 0;
    temp->length = len;
    temp->link   = 0;
!   temp->rest   = OPTION_ENABLED (option, TYPE) ? k + len + 1 : "";
  
    if (OPTION_ENABLED (option, ALLCHARS)) /* Use all the character position in the KEY. */
  
--- 75,81 ----
    temp->index  = 0;
    temp->length = len;
    temp->link   = 0;
!   temp->rest   = OPTION_ENABLED (option, TYPE) ? k + len + (klen > len) : "";
  
    if (OPTION_ENABLED (option, ALLCHARS)) /* Use all the character position in the KEY. */
  
