Index: /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java	(revision 1182)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java	(revision 1183)
@@ -16,4 +16,5 @@
 import java.awt.Point;
 import java.awt.Rectangle;
+import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -522,5 +523,10 @@
 
     private static Icon loadScaledImage(File f, int maxSize) {
-        Image img = new ImageIcon(f.getPath()).getImage();
+        Image img = Toolkit.getDefaultToolkit().createImage(f.getPath());
+        while (img.getWidth(null) < 0 || img.getHeight(null) < 0) {
+          try {
+            Thread.sleep(10);
+          } catch(InterruptedException ie) {}
+        }
         int w = img.getWidth(null);
         int h = img.getHeight(null);
@@ -536,10 +542,14 @@
 
     private static BufferedImage createResizedCopy(Image originalImage,
-            int scaledWidth, int scaledHeight)
+    int scaledWidth, int scaledHeight)
     {
         BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
         Graphics2D g = scaledBI.createGraphics();
-
-        g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null);
+        while (!g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null))
+        {
+          try {
+            Thread.sleep(10);
+          } catch(InterruptedException ie) {}
+        }
         g.dispose();
         return scaledBI;
