I am getting pretty close to the cause in DeploymentsResolver.loadFromClasspath
UrlSet urlSet = new UrlSet(classLoader); <-- Contains duplicate urls. ...filter etc. Still contains duplicate urls with different drive letters after all filters have been applied. [62] = {java.util.HashMap$Entry@4579} jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ -> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ [63] = {java.util.HashMap$Entry@4570} jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ -> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ So duplicate modules are discovered in duplicate jars. Now no idea why UrlSet would get duplicate urls in the first place? - The supplied classloader definitely looks fine to me! The simple solution is to filter out duplicate urls in the urlSet. Probably in a platform specific manner. -- View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344892.html Sent from the OpenEJB Dev mailing list archive at Nabble.com.