Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java	(revision 17485)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractCachedTileSourceLayer.java	(revision 17486)
@@ -53,6 +53,6 @@
             String key = this.getClass().getCanonicalName();
             loaderFactory = loaderFactories.get(key);
-            if (loaderFactory == null) {
-                synchronized (AbstractCachedTileSourceLayer.class) {
+            synchronized (AbstractCachedTileSourceLayer.class) {
+                if (loaderFactory == null) {
                     // check again, maybe another thread initialized factory
                     loaderFactory = loaderFactories.get(key);
@@ -78,11 +78,10 @@
      */
     private synchronized ICacheAccess<String, BufferedImageCacheEntry> getCache() {
-        if (cache != null) {
-            return cache;
+        if (cache == null) {
+            cache = JCSCacheManager.getCache(getCacheName(),
+                    0,
+                    getDiskCacheSize(),
+                    CachedTileLoaderFactory.PROP_TILECACHE_DIR.get());
         }
-        cache = JCSCacheManager.getCache(getCacheName(),
-                0,
-                getDiskCacheSize(),
-                CachedTileLoaderFactory.PROP_TILECACHE_DIR.get());
         return cache;
     }
