diff -u -r -x *.[^ch]|nmake|am ethereal-orig/packet-dcerpc-samr.c ethereal/packet-dcerpc-samr.c
--- ethereal-orig/packet-dcerpc-samr.c	Tue Feb  5 18:22:44 2002
+++ ethereal/packet-dcerpc-samr.c	Tue Feb  5 21:42:30 2002
@@ -46,7 +46,7 @@
 static int hf_samr_rc = -1;
 static int hf_samr_index = -1;
 static int hf_samr_acct_ctrl = -1;
-static int hf_samr_array_max_count = -1;
+static int hf_samr_count = -1;
 
 static int hf_samr_level = -1;
 static int hf_samr_start_idx = -1;
@@ -317,7 +317,7 @@
 	/* the SID contains a conformant array, first we must eat
 	   the 4-byte max_count before we can hand it off */
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, NULL);
+                                     hf_samr_count, NULL);
 
 	offset = dissect_nt_sid(tvb, pinfo, offset, tree, "Domain");
 	return offset;
@@ -503,7 +503,7 @@
 
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_USER_DISPINFO_1_ARRAY_users, NDR_POINTER_PTR,
 			-1);
@@ -573,7 +573,7 @@
 
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_USER_DISPINFO_2_ARRAY_users, NDR_POINTER_PTR,
 			-1);
@@ -644,7 +644,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_GROUP_DISPINFO_ARRAY_groups, NDR_POINTER_PTR,
 			-1);
@@ -713,7 +713,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_ASCII_DISPINFO_ARRAY_users, NDR_POINTER_PTR,
 			-1);
@@ -964,7 +964,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_USER_GROUP_ARRAY_groups, NDR_POINTER_UNIQUE,
 			-1);
@@ -1866,7 +1866,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_PSID_ARRAY_sids, NDR_POINTER_UNIQUE,
 			-1);
@@ -1933,7 +1933,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_INDEX_ARRAY_value, NDR_POINTER_UNIQUE,
 			di->hf_index);
@@ -2029,7 +2029,7 @@
 	}
 
         offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
-                                     hf_samr_array_max_count, &count);
+                                     hf_samr_count, &count);
         offset = dissect_ndr_pointer(tvb, offset, pinfo, tree, drep,
 			samr_dissect_IDX_AND_NAME_entry, NDR_POINTER_UNIQUE,
 			di->hf_index);
@@ -2369,8 +2369,8 @@
 		{ "Acct Ctrl", "samr.acct_ctrl", FT_UINT32, BASE_DEC, 
 		NULL, 0x0, "Acct CTRL", HFILL }},
 
-        { &hf_samr_array_max_count,
-          { "Max Count", "samr.array.max_count", FT_UINT32, BASE_DEC, NULL, 0x0, "Maximum Count: Number of elements in the conformant array", HFILL }},
+        { &hf_samr_count,
+          { "Count", "samr.count", FT_UINT32, BASE_DEC, NULL, 0x0, "Number of elements in following array", HFILL }},
 
 	{ &hf_samr_acct_name,
 		{ "Account Name", "samr.acct_name", FT_STRING, BASE_NONE,
diff -u -r -x *.[^ch]|nmake|am ethereal-orig/packet-dcerpc.c ethereal/packet-dcerpc.c
--- ethereal-orig/packet-dcerpc.c	Tue Feb  5 18:22:44 2002
+++ ethereal/packet-dcerpc.c	Tue Feb  5 21:57:59 2002
@@ -469,6 +469,9 @@
 				hf_dcerpc_array_max_count, &di->array_max_count);
 		di->conformant_run=1;
 	} else {
+		/* we dont dont remember where  in the bytestream this fields was */
+		proto_tree_add_uint(tree, hf_dcerpc_array_max_count, tvb, 0, 0, di->array_max_count);
+
 		/* real run, dissect the elements */
 		for(i=0;i<di->array_max_count;i++){
 			offset = (*fnct)(tvb, offset, pinfo, tree, drep);
@@ -498,6 +501,11 @@
 				hf_dcerpc_array_actual_count, &di->array_actual_count);
 		di->conformant_run=1;
 	} else {
+		/* we dont dont remember where  in the bytestream these fields were */
+		proto_tree_add_uint(tree, hf_dcerpc_array_max_count, tvb, 0, 0, di->array_max_count);
+		proto_tree_add_uint(tree, hf_dcerpc_array_offset, tvb, 0, 0, di->array_offset);
+		proto_tree_add_uint(tree, hf_dcerpc_array_actual_count, tvb, 0, 0, di->array_actual_count);
+
 		/* real run, dissect the elements */
 		for(i=0;i<di->array_actual_count;i++){
 			offset = (*fnct)(tvb, offset, pinfo, tree, drep);
