Index: /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/ImageryLayer.java
===================================================================
--- /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/ImageryLayer.java	(revision 24685)
+++ /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/ImageryLayer.java	(revision 24686)
@@ -1,8 +1,12 @@
 package org.openstreetmap.josm.plugins.imagery;
 
+import static org.openstreetmap.josm.tools.I18n.tr;
 import static org.openstreetmap.josm.tools.I18n.trc;
 
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.Container;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
@@ -177,3 +181,12 @@
         return op.filter(tmp, null);
     }
+
+    public void drawErrorTile(BufferedImage img) {
+        Graphics g = img.getGraphics();
+        g.setColor(Color.RED);
+        g.fillRect(0, 0, img.getWidth(), img.getHeight());
+        g.setFont(g.getFont().deriveFont(Font.PLAIN).deriveFont(36.0f));
+        g.setColor(Color.BLACK);
+        g.drawString(tr("ERROR"), 30, img.getHeight()/2);
+    }
 }
Index: /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/tms/TMSLayer.java
===================================================================
--- /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/tms/TMSLayer.java	(revision 24685)
+++ /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/tms/TMSLayer.java	(revision 24686)
@@ -16,4 +16,5 @@
 import java.awt.font.TextAttribute;
 import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
 import java.awt.image.ImageObserver;
 import java.io.IOException;
@@ -80,9 +81,14 @@
     public synchronized void tileLoadingFinished(Tile tile, boolean success)
     {
+        if (!success) {
+            BufferedImage img = new BufferedImage(tileSource.getTileSize(),tileSource.getTileSize(), BufferedImage.TYPE_INT_RGB);
+            drawErrorTile(img);
+            tile.setImage(img);
+        }
         tile.setLoaded(true);
         needRedraw = true;
         Main.map.repaint(100);
         tileRequestsOutstanding.remove(tile);
-        if (sharpenLevel != 0) tile.setImage(sharpenImage(tile.getImage()));
+        if (sharpenLevel != 0 && success) tile.setImage(sharpenImage(tile.getImage()));
         if (debug)
             out("tileLoadingFinished() tile: " + tile + " success: " + success);
Index: /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/wms/GeorefImage.java
===================================================================
--- /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/wms/GeorefImage.java	(revision 24685)
+++ /applications/editors/josm/plugins/imagery/src/org/openstreetmap/josm/plugins/imagery/wms/GeorefImage.java	(revision 24686)
@@ -72,10 +72,5 @@
         {
             BufferedImage img = createImage();
-            Graphics g = img.getGraphics();
-            g.setColor(Color.RED);
-            g.fillRect(0, 0, img.getWidth(), img.getHeight());
-            g.setFont(g.getFont().deriveFont(Font.PLAIN).deriveFont(36.0f));
-            g.setColor(Color.BLACK);
-            g.drawString(tr("Exception occurred"), 10, img.getHeight()/2);
+            layer.drawErrorTile(img);
             this.image = img;
             break;
