diff -u /usr/local/src/pmtools.orig/acpidisasm/parse.c ./parse.c
--- /usr/local/src/pmtools.orig/acpidisasm/parse.c	Wed Apr 26 07:43:55 2000
+++ ./parse.c	Wed Oct 11 17:13:43 2000
@@ -484,7 +484,7 @@
 				acpi_set_name(field, readl(state->aml));
 				state->aml += 4;
 				field->value.size = (acpi_next_pkg_end(state)
-						     - start);
+						     - (start+4));
 			}
 			break;
 		case AML_RESERVEDFIELD:
diff -u /usr/local/src/pmtools.orig/acpidisasm/util.c ./util.c
--- /usr/local/src/pmtools.orig/acpidisasm/util.c	Thu May  4 11:21:45 2000
+++ ./util.c	Wed Oct 11 19:37:39 2000
@@ -280,6 +280,7 @@
 {
 	int size = 0;
 	char *buffer = buffer_start;
+	static int field_offset;
 
 	if(op)
 	{
@@ -391,13 +392,18 @@
 			size = acpi_safe_sprintf(buffer,
 						 buffer_size,
 						 0,
-						 "NamedField");
+						 "NamedField (%d bits at 0x%x:%d)", op->value.size, 
+						 field_offset/8, field_offset%8);
+			field_offset += op->value.size;
 			break;
 		case AML_RESERVEDFIELD:
 			size = acpi_safe_sprintf(buffer,
 						 buffer_size,
 						 0,
-						 "ReservedField");
+						 "ReservedField (%d bits at 0x%x:%d)",
+						 op->value.size, 
+						 field_offset/8, field_offset%8);
+			field_offset += op->value.size;
 			break;
 		case AML_ACCESSFIELD:
 			size = acpi_safe_sprintf(buffer,
@@ -435,6 +441,7 @@
 							 "LockRule: %s; "
 							 "UpdateRule: %s",
 							 access_type, lock_rule, update_rule);
+				field_offset = 0;
 				break;
 			}
 
