Index: src/main/java/com/sun/enterprise/deployment/deploy/shared/DeploymentPlanArchive.java =================================================================== --- src/main/java/com/sun/enterprise/deployment/deploy/shared/DeploymentPlanArchive.java (revision 40375) +++ src/main/java/com/sun/enterprise/deployment/deploy/shared/DeploymentPlanArchive.java (working copy) @@ -167,7 +167,7 @@ } if (entryName.endsWith(".dbschema")) { mangledName = mangledName.replaceAll("#", "/"); - } else { + } else if (!mangledName.startsWith(prefix)) { mangledName = prefix + mangledName; } @@ -240,7 +240,13 @@ * @return an input stream giving its entry name */ public InputStream getEntry(String name) throws IOException { - + // If we contain an exact match, don't try to demangle. This will have + // interesting effects on deployment plans with duplicate files (foo, + // META-INF/foo). + InputStream element = getElement(name); + if (element != null) + return element; + // we are just interested in the file name, not the // relative path if (name.endsWith(".dbschema")) {