Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java	(revision 7870)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImageryHandler.java	(revision 7871)
@@ -57,6 +57,5 @@
     }
 
-    @Override
-    protected void handleRequest() throws RequestHandlerErrorException {
+    protected ImageryInfo buildImageryInfo() {
         String url = args.get("url");
         String title = args.get("title");
@@ -74,18 +73,32 @@
             imgInfo.setIcon(bing.getIcon());
         }
-        String min_zoom = args.get("min_zoom");
-        if (min_zoom != null && !min_zoom.isEmpty()) {
+        String minZoom = args.get("min_zoom");
+        if (minZoom != null && !minZoom.isEmpty()) {
             try {
-                imgInfo.setDefaultMinZoom(Integer.parseInt(min_zoom));
+                imgInfo.setDefaultMinZoom(Integer.parseInt(minZoom));
             } catch (NumberFormatException e) {
                 Main.error(e);
             }
         }
-        String max_zoom = args.get("max_zoom");
-        if (max_zoom != null && !max_zoom.isEmpty()) {
+        String maxZoom = args.get("max_zoom");
+        if (maxZoom != null && !maxZoom.isEmpty()) {
             try {
-                imgInfo.setDefaultMaxZoom(Integer.parseInt(max_zoom));
+                imgInfo.setDefaultMaxZoom(Integer.parseInt(maxZoom));
             } catch (NumberFormatException e) {
                 Main.error(e);
+            }
+        }
+        return imgInfo;
+    }
+
+    @Override
+    protected void handleRequest() throws RequestHandlerErrorException {
+        final ImageryInfo imgInfo = buildImageryInfo();
+        if (Main.isDisplayingMapView()) {
+            for (ImageryLayer layer : Main.map.mapView.getLayersOfType(ImageryLayer.class)) {
+                if (layer.getInfo().equals(imgInfo)) {
+                    Main.info("Imagery layer already exists: "+imgInfo);
+                    return;
+                }
             }
         }
@@ -114,8 +127,6 @@
                     args.put("url", decodeParam(query.substring(urlIdx + 5)));
                     query = query.substring(0, urlIdx);
-                } else {
-                    if (query.indexOf('#') != -1) {
-                        query = query.substring(0, query.indexOf('#'));
-                    }
+                } else if (query.indexOf('#') != -1) {
+                    query = query.substring(0, query.indexOf('#'));
                 }
                 String[] params = query.split("&", -1);
