Index: /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
===================================================================
--- /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 28552)
+++ /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 28553)
@@ -2,4 +2,6 @@
 
 //License: GPL.
+
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Image;
@@ -36,4 +38,5 @@
 
 public class BingAerialTileSource extends AbstractTMSTileSource {
+
     private static String API_KEY = "Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU";
     private static volatile Future<List<Attribution>> attributions; // volatile is required for getAttribution(), see below.
@@ -61,5 +64,6 @@
     public String getTileUrl(int zoom, int tilex, int tiley) throws IOException {
         // make sure that attribution is loaded. otherwise subdomains is null.
-        getAttribution();
+        if (getAttribution() == null)
+            throw new IOException(tr("Attribution is not loaded yet"));
 
         int t = (zoom + tilex + tiley) % subdomains.length;
@@ -240,7 +244,6 @@
         try {
             final List<Attribution> data = getAttribution();
-            if (data == null) {
+            if (data == null)
                 return "Error loading Bing attribution data";
-            }
             StringBuilder a = new StringBuilder();
             for (Attribution attr : data) {
