Index: trunk/src/org/openstreetmap/josm/data/cache/CacheEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/cache/CacheEntry.java	(revision 8627)
+++ trunk/src/org/openstreetmap/josm/data/cache/CacheEntry.java	(revision 8628)
@@ -3,4 +3,5 @@
 
 import java.io.Serializable;
+import java.util.Arrays;
 
 /**
@@ -18,5 +19,5 @@
      */
     public CacheEntry(byte[] content) {
-        this.content = content;
+        this.content = Arrays.copyOf(content, content.length);
     }
 
@@ -25,5 +26,5 @@
      */
     public byte[] getContent() {
-        return content;
+        return Arrays.copyOf(content, content.length);
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java	(revision 8627)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java	(revision 8628)
@@ -43,5 +43,5 @@
 
     private ICacheAccess<String, BufferedImageCacheEntry> cache;
-    private TileLoaderFactory loaderFactory;
+    private volatile TileLoaderFactory loaderFactory;
 
 
