Index: 2.6.13/drivers/acpi/tables/tbutils.c
===================================================================
--- 2.6.13.orig/drivers/acpi/tables/tbutils.c	2005-09-02 17:24:53.000000000 -0400
+++ 2.6.13/drivers/acpi/tables/tbutils.c	2005-09-02 17:25:14.000000000 -0400
@@ -90,14 +90,22 @@ acpi_tb_is_table_installed (
 	/* Examine all installed tables of this type */
 
 	while (table_desc) {
-		/* Compare Revision and oem_table_id */
-
+		/*
+		 * If the table lengths match, perform a full bytewise compare. This
+		 * means that we will allow tables with duplicate oem_table_id(s), as
+		 * long as the tables are different in some way.
+		 *
+		 * Checking if the table has been loaded into the namespace means that
+		 * we don't check for duplicate tables during the initial installation
+		 * of tables within the RSDT/XSDT.
+		 */
 		if ((table_desc->loaded_into_namespace) &&
-			(table_desc->pointer->revision ==
-					new_table_desc->pointer->revision) &&
-			(!ACPI_MEMCMP (table_desc->pointer->oem_table_id,
-					new_table_desc->pointer->oem_table_id, 8))) {
-			/* This table is already installed */
+			(table_desc->pointer->length == new_table_desc->pointer->length) &&
+			(!ACPI_MEMCMP (
+				(const char *) table_desc->pointer,
+				(const char *) new_table_desc->pointer,
+				(acpi_size) new_table_desc->pointer->length))) {
+			/* Match: this table is already installed */
 
 			ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
 				"Table [%4.4s] already installed: Rev %X oem_table_id [%8.8s]\n",
Index: 2.6.13/drivers/acpi/utilities/utdebug.c
===================================================================
--- 2.6.13.orig/drivers/acpi/utilities/utdebug.c	2005-09-02 17:24:53.000000000 -0400
+++ 2.6.13/drivers/acpi/utilities/utdebug.c	2005-09-02 17:25:14.000000000 -0400
@@ -137,13 +137,13 @@ acpi_ut_trim_function_name (
 
 	/* All Function names are longer than 4 chars, check is safe */
 
-	if (*(ACPI_CAST_PTR (u32, function_name)) == ACPI_FUNCTION_PREFIX1) {
+	if (*(ACPI_CAST_PTR (u32, function_name)) == ACPI_PREFIX_MIXED) {
 		/* This is the case where the original source has not been modified */
 
 		return (function_name + 4);
 	}
 
-	if (*(ACPI_CAST_PTR (u32, function_name)) == ACPI_FUNCTION_PREFIX2) {
+	if (*(ACPI_CAST_PTR (u32, function_name)) == ACPI_PREFIX_LOWER) {
 		/* This is the case where the source has been 'linuxized' */
 
 		return (function_name + 5);
Index: 2.6.13/drivers/acpi/utilities/utmisc.c
===================================================================
--- 2.6.13.orig/drivers/acpi/utilities/utmisc.c	2005-09-02 17:25:05.000000000 -0400
+++ 2.6.13/drivers/acpi/utilities/utmisc.c	2005-09-02 17:25:14.000000000 -0400
@@ -87,6 +87,10 @@ acpi_ut_allocate_owner_id (
 
 	for (i = 0; i < 32; i++) {
 		if (!(acpi_gbl_owner_id_mask & (1 << i))) {
+			ACPI_DEBUG_PRINT ((ACPI_DB_VALUES,
+				"Current owner_id mask: %8.8X New ID: %2.2X\n",
+				acpi_gbl_owner_id_mask, (i + 1)));
+
 			acpi_gbl_owner_id_mask |= (1 << i);
 			*owner_id = (acpi_owner_id) (i + 1);
 			goto exit;
@@ -133,7 +137,7 @@ acpi_ut_release_owner_id (
 	acpi_status                     status;
 
 
-	ACPI_FUNCTION_TRACE ("ut_release_owner_id");
+	ACPI_FUNCTION_TRACE_U32 ("ut_release_owner_id", owner_id);
 
 
 	/* Always clear the input owner_id (zero is an invalid ID) */
Index: 2.6.13/include/acpi/acconfig.h
===================================================================
--- 2.6.13.orig/include/acpi/acconfig.h	2005-09-02 17:24:53.000000000 -0400
+++ 2.6.13/include/acpi/acconfig.h	2005-09-02 17:25:14.000000000 -0400
@@ -64,7 +64,7 @@
 
 /* Version string */
 
-#define ACPI_CA_VERSION                 0x20050729
+#define ACPI_CA_VERSION                 0x20050815
 
 /*
  * OS name, used for the _OS object.  The _OS object is essentially obsolete,
Index: 2.6.13/include/acpi/acnames.h
===================================================================
--- 2.6.13.orig/include/acpi/acnames.h	2005-09-02 17:24:53.000000000 -0400
+++ 2.6.13/include/acpi/acnames.h	2005-09-02 17:25:14.000000000 -0400
@@ -71,19 +71,15 @@
 
 /* Definitions of the predefined namespace names  */
 
-#define ACPI_UNKNOWN_NAME       (u32) 0x3F3F3F3F     /* Unknown name is  "????" */
-#define ACPI_ROOT_NAME          (u32) 0x5F5F5F5C     /* Root name is     "\___" */
-#define ACPI_SYS_BUS_NAME       (u32) 0x5F53425F     /* Sys bus name is  "_SB_" */
+#define ACPI_UNKNOWN_NAME       (u32) 0x3F3F3F3F     /* Unknown name is "????" */
+#define ACPI_ROOT_NAME          (u32) 0x5F5F5F5C     /* Root name is    "\___" */
+
+#define ACPI_PREFIX_MIXED       (u32) 0x69706341     /* "Acpi" */
+#define ACPI_PREFIX_LOWER       (u32) 0x69706361     /* "acpi" */
 
 #define ACPI_NS_ROOT_PATH       "\\"
 #define ACPI_NS_SYSTEM_BUS      "_SB_"
 
-/*! [Begin] no source code translation (not handled by acpisrc) */
-#define ACPI_FUNCTION_PREFIX1   'ipcA'
-#define ACPI_FUNCTION_PREFIX2   'ipca'
-/*! [End] no source code translation !*/
-
-
 #endif  /* __ACNAMES_H__  */