Index: /trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapControler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapControler.java	(revision 4473)
+++ /trunk/src/org/openstreetmap/josm/gui/bbox/SlippyMapControler.java	(revision 4474)
@@ -56,4 +56,6 @@
     private SizeButton iSizeButton = null;
     private SourceButton iSourceButton = null;
+    
+    private boolean isSelecting;
 
     /**
@@ -77,4 +79,6 @@
         iSizeButton = sizeButton;
         iSourceButton = sourceButton;
+        
+        isSelecting = false;
 
         InputMap inputMap = navComp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
@@ -132,4 +136,5 @@
                 iEndSelectionPoint = e.getPoint();
                 iSlippyMapChooser.setSelection(iStartSelectionPoint, iEndSelectionPoint);
+                isSelecting = true;
             }
         }
@@ -144,26 +149,27 @@
         if (e.getButton() == MouseEvent.BUTTON1) {
 
-            int sourceButton = iSourceButton.hit(e.getPoint());
-
-            if (iSizeButton.hit(e.getPoint())) {
-                iSizeButton.toggle();
-                iSlippyMapChooser.resizeSlippyMap();
-            } else if (iSlippyMapChooser.handleAttribution(e.getPoint(), true)) {
-                /* do nothing, handleAttribution() already did the work */
-            } else if (sourceButton == SourceButton.HIDE_OR_SHOW) {
-                iSourceButton.toggle();
-                iSlippyMapChooser.repaint();
-            } else if (sourceButton != 0) {
-                iSlippyMapChooser.toggleMapSource(iSourceButton.hitToTileSource(sourceButton));
-            } else {
-                if (e.getClickCount() == 1) {
-                    iSlippyMapChooser.setSelection(iStartSelectionPoint, e.getPoint());
-
-                    // reset the selections start and end
-                    iEndSelectionPoint = null;
-                    iStartSelectionPoint = null;
-                }
-            }
-
+        	if (isSelecting && e.getClickCount() == 1) {
+                iSlippyMapChooser.setSelection(iStartSelectionPoint, e.getPoint());
+
+                // reset the selections start and end
+                iEndSelectionPoint = null;
+                iStartSelectionPoint = null;
+                isSelecting = false;
+                
+        	} else {
+                int sourceButton = iSourceButton.hit(e.getPoint());
+
+                if (iSizeButton.hit(e.getPoint())) {
+                    iSizeButton.toggle();
+                    iSlippyMapChooser.resizeSlippyMap();
+                } else if (iSlippyMapChooser.handleAttribution(e.getPoint(), true)) {
+                    /* do nothing, handleAttribution() already did the work */
+                } else if (sourceButton == SourceButton.HIDE_OR_SHOW) {
+                    iSourceButton.toggle();
+                    iSlippyMapChooser.repaint();
+                } else if (sourceButton != 0) {
+                    iSlippyMapChooser.toggleMapSource(iSourceButton.hitToTileSource(sourceButton));
+                }
+        	}
         }
     }
