/* 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",
 
 
        /* 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);
 
 
        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;
        acpi_owner_id owner_id = *owner_id_ptr;
        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) */
 
 
 
 /* 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,
 
 
 /* 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__  */