On Jan 5, 2011, at 6:53 PM, Brian Oleksa wrote:         helen_item = proto_tree_add_item(tree, proto_helen, tvb, 0, -1, FALSE);         helen_tree = proto_item_add_subtree(helen_item, ett_helen);         helen_header_tree = proto_item_add_subtree(helen_item, ett_helen);
  
 
 
 You're not putting anything into that tree, so there's no point in keeping it.  You're also attaching two subtrees to the same item; I don't think that does anything useful.         helen_sub_item = proto_tree_add_item(helen_tree, hf_helen_checksum, tvb, offset, 8, FALSE);         offset += 8;
          msecs_since_the_epoch = tvb_get_ntoh64(tvb, offset);         t.secs = msecs_since_the_epoch / 1000;         t.nsecs = (msecs_since_the_epoch % 1000)*1000000; /* milliseconds to nanoseconds */         tmp = gmtime(&t.secs);
      if (tmp != NULL)     {         proto_tree_add_time_format(helen_tree, hf_helen_txTime, tvb, offset, 8, &t,                 "Date: %s %2d, %d %02d:%02d:%02d UTC", mon_names[tmp->tm_mon], tmp->tm_mday,                 tmp->tm_year + 1900, tmp->tm_hour, tmp->tm_min, tmp->tm_sec);     }
          helen_header_tree = proto_item_add_subtree(helen_sub_item, ett_helen);
  
 
 
 That will create a tree under the hf_helen_checksum tree item.  Is that what you want?  Checksums usually aren't very structured. :-) 
 
 Using ett_helen everywhere means that if you open any item for your protocol, the next time you click on a packet with data for your protocol, *every* subtree for your protocol will be opened up.  You might want to use separate items for separate trees. 
 
 
  |