Index: /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 10402)
+++ /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 10403)
@@ -840,10 +840,11 @@
                     }
 
-                    ImageResource ir = cache.get(cacheName);
-                    if (ir != null) return ir;
-
                     switch (place) {
                     case typeArchive:
                         if (archive != null) {
+                            cacheName = "zip:"+archive+":"+cacheName;
+                            ImageResource ir = cache.get(cacheName);
+                            if (ir != null) return ir;
+
                             ir = getIfAvailableZip(fullName, archive, inArchiveDir, type);
                             if (ir != null) {
@@ -854,4 +855,7 @@
                         break;
                     case typeLocal:
+                        ImageResource ir = cache.get(cacheName);
+                        if (ir != null) return ir;
+
                         // getImageUrl() does a ton of "stat()" calls and gets expensive
                         // and redundant when you have a whole ton of objects. So,
