Index: /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java
===================================================================
--- /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 30757)
+++ /applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/BingAerialTileSource.java	(revision 30758)
@@ -4,4 +4,5 @@
 import java.awt.Image;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -46,5 +47,9 @@
     private static final Pattern quadkeyPattern = Pattern.compile("\\{quadkey\\}");
     private static final Pattern culturePattern = Pattern.compile("\\{culture\\}");
-
+    private String brandLogoUri = null;
+
+    /**
+     * Constructs a new {@code BingAerialTileSource}.
+     */
     public BingAerialTileSource() {
         super("Bing Aerial Maps", "http://example.com/");
@@ -97,4 +102,6 @@
                 subdomains[i] = subdomainTxt.item(i).getNodeValue();
             }
+
+            brandLogoUri = xpath.compile("/Response/BrandLogoUri/text()").evaluate(document);
 
             XPathExpression attributionXpath = xpath.compile("Attribution/text()");
@@ -175,8 +182,21 @@
     public Image getAttributionImage() {
         try {
-            return ImageIO.read(JMapViewer.class.getResourceAsStream("images/bing_maps.png"));
+            final InputStream imageResource = JMapViewer.class.getResourceAsStream("images/bing_maps.png");
+            if (imageResource != null) {
+                return ImageIO.read(imageResource);
+            } else {
+                // Some Linux distributions (like Debian) will remove Bing logo from sources, so get it at runtime
+                for (int i = 0; i < 5 && getAttribution() == null; i++) {
+                    // Makes sure attribution is loaded
+                }
+                if (brandLogoUri != null && !brandLogoUri.isEmpty()) {
+                    System.out.println("Reading Bing logo from "+brandLogoUri);
+                    return ImageIO.read(new URL(brandLogoUri));
+                }
+            }
         } catch (IOException e) {
-            return null;
-        }
+            System.err.println("Error while retrieving Bing logo: "+e.getMessage());
+        }
+        return null;
     }
 
