Index: plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/ImageryCachePlugin.java
===================================================================
--- plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/ImageryCachePlugin.java	(revision 31077)
+++ plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/ImageryCachePlugin.java	(working copy)
@@ -1,7 +1,10 @@
 package org.openstreetmap.josm.plugins.imagerycache;
 
 import java.io.File;
+import java.util.Map;
+
 import org.openstreetmap.gui.jmapviewer.OsmTileLoader;
+import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
 import org.openstreetmap.josm.gui.layer.TMSLayer;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -27,6 +30,12 @@
             }
             return null;
         }
+
+		@Override
+		public TileLoader makeTileLoader(TileLoaderListener listener,
+				Map<String, String> headers) {
+			return makeTileLoader(listener);
+		}
     };
 
     public ImageryCachePlugin(PluginInformation info) {
Index: plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/OsmDBTilesLoader.java
===================================================================
--- plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/OsmDBTilesLoader.java	(revision 31077)
+++ plugins/imagerycache/src/org/openstreetmap/josm/plugins/imagerycache/OsmDBTilesLoader.java	(working copy)
@@ -15,7 +15,6 @@
 import org.openstreetmap.gui.jmapviewer.OsmTileLoader;
 import org.openstreetmap.gui.jmapviewer.Tile;
 import org.openstreetmap.gui.jmapviewer.interfaces.CachedTileLoader;
-import org.openstreetmap.gui.jmapviewer.interfaces.TileClearController;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileJob;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoaderListener;
 import org.openstreetmap.gui.jmapviewer.interfaces.TileSource;
@@ -40,7 +39,6 @@
     protected long maxCacheFileAge = FILE_AGE_ONE_WEEK;
     protected long recheckAfter = FILE_AGE_ONE_DAY;
 
-
     public OsmDBTilesLoader(TileLoaderListener smap, File cacheFolder) {
         super(smap);
         dao = TileDAOMapDB.getInstance();
@@ -54,14 +52,9 @@
 
     @Override
     public void clearCache(TileSource source) {
-        clearCache(source, null);
+    	dao.cleanStorage(source.getName());
     }
 
-    @Override
-    public void clearCache(TileSource source, TileClearController controller) {
-        dao.cleanStorage(source.getName());
-    }
-
     protected class DatabaseLoadJob implements TileJob {
 
         private final Tile tile;
@@ -94,22 +87,25 @@
                     return;
                 tile.initLoading();
             }
-            if (loadTileFromFile()) {
-                return;
-            }
-            if (dbTile != null) {
-                TileJob job = new TileJob() {
-                    @Override public void run() {
-                        loadOrUpdateTileFromServer();
-                    }
-                    @Override public Tile getTile() {
-                        return tile;
-                    }
-                };
-                JobDispatcher.getInstance().addJob(job);
-            } else {
-                loadOrUpdateTileFromServer();
-            }
+
+            TileJob job = new TileJob() {
+            	@Override public void run() {
+            		if (loadTileFromFile()) {
+            			return;
+            		}
+
+            		loadOrUpdateTileFromServer();
+            	}
+            	@Override public Tile getTile() {
+            		return tile;
+            	}
+            	@Override
+            	public void submit() {
+            		run();
+
+            	}
+            };
+            JobDispatcher.getInstance().addJob(job);
         }
 
         /**
@@ -164,7 +160,9 @@
             } catch (Error e) { // this is bad, bat MapDB throws it
                 Main.error("Serious database error: Can not load tile from database: "+sourceName+":"+id);
             	Main.error(e);
-                dbTile = null;  fileAge = 0;  return false;
+                dbTile = null;  
+                fileAge = 0; 
+                return false;
             }
         }
 
@@ -340,5 +338,11 @@
                 tile.putValue(k, m.get(k));
             }
         }
+
+		@Override
+		public void submit() {
+			run();
+			
+		}
     }
 }
