Index: java/util/zip/ZipEntry.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/util/zip/ZipEntry.java,v retrieving revision 1.15 diff -u -r1.15 ZipEntry.java --- java/util/zip/ZipEntry.java 10 Dec 2004 13:59:14 -0000 1.15 +++ java/util/zip/ZipEntry.java 12 Dec 2004 19:06:34 -0000 @@ -103,7 +103,12 @@ */ public ZipEntry(ZipEntry e) { - name = e.name; + this(e, e.name); + } + + ZipEntry(ZipEntry e, String name) + { + this.name = name; known = e.known; size = e.size; compressedSize = e.compressedSize; Index: java/util/zip/ZipFile.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/util/zip/ZipFile.java,v retrieving revision 1.19 diff -u -r1.19 ZipFile.java --- java/util/zip/ZipFile.java 22 Oct 2004 18:02:06 -0000 1.19 +++ java/util/zip/ZipFile.java 12 Dec 2004 19:06:35 -0000 @@ -358,7 +358,10 @@ { HashMap entries = getEntries(); ZipEntry entry = (ZipEntry) entries.get(name); - return entry != null ? (ZipEntry) entry.clone() : null; + // If we didn't find it, maybe it's a directory. + if (entry == null && !name.endsWith("/")) + entry = (ZipEntry) entries.get(name + '/'); + return entry != null ? new ZipEntry(entry, name) : null; } catch (IOException ioe) {