Index: /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 13647)
+++ /trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 13648)
@@ -1656,5 +1656,5 @@
         }
 
-        ImageInputStream stream = ImageIO.createImageInputStream(input);
+        ImageInputStream stream = createImageInputStream(input);
         if (stream == null) {
             throw new IIOException("Can't create an ImageInputStream!");
@@ -1706,5 +1706,5 @@
         CheckParameterUtil.ensureParameterNotNull(input, "input");
 
-        ImageInputStream stream = ImageIO.createImageInputStream(input);
+        ImageInputStream stream = createImageInputStream(input);
         BufferedImage bi = read(stream, readMetadata, enforceTransparency);
         if (bi == null) {
@@ -1750,5 +1750,5 @@
 
         try (InputStream istream = Utils.openStream(input)) {
-            ImageInputStream stream = ImageIO.createImageInputStream(istream);
+            ImageInputStream stream = createImageInputStream(istream);
             BufferedImage bi = read(stream, readMetadata, enforceTransparency);
             if (bi == null) {
@@ -2016,3 +2016,15 @@
         return buffImage;
     }
+
+    private static ImageInputStream createImageInputStream(Object input) throws IOException {
+        try {
+            return ImageIO.createImageInputStream(input);
+        } catch (SecurityException e) {
+            if (ImageIO.getUseCache()) {
+                ImageIO.setUseCache(false);
+                return ImageIO.createImageInputStream(input);
+            }
+            throw new IOException(e);
+        }
+    }
 }
