Index: trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 658)
+++ trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 659)
@@ -11,7 +11,4 @@
 import java.awt.event.FocusEvent;
 import java.awt.event.FocusListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
 import java.util.HashMap;
 
@@ -21,4 +18,6 @@
 import javax.swing.JTextField;
 import javax.swing.SwingUtilities;
+import javax.swing.event.DocumentListener;
+import javax.swing.event.DocumentEvent;
 
 import org.openstreetmap.josm.Main;
@@ -78,25 +77,23 @@
 			f.addFocusListener(dialogUpdater);
 		}
-		
-		final KeyListener osmUrlRefresher = new KeyAdapter() {
-			@Override public void keyTyped(KeyEvent e) {
-				SwingUtilities.invokeLater(new Runnable() {
-					public void run() {
-						Bounds b = osmurl2bounds(osmUrl.getText());
-						if (b != null) {
-							gui.minlon = b.min.lon();
-							gui.minlat = b.min.lat();
-							gui.maxlon = b.max.lon();
-							gui.maxlat = b.max.lat();
-							gui.boundingBoxChanged(BoundingBoxSelection.this);
-							updateBboxFields(gui);
-							updateSizeCheck(gui);
-						}
-					}
-				});
+		class osmUrlRefresher implements DocumentListener {
+			public void changedUpdate(DocumentEvent e) { dowork(); }
+			public void insertUpdate(DocumentEvent e) { dowork(); }
+			public void removeUpdate(DocumentEvent e) { dowork(); }
+			private void dowork() {
+				Bounds b = osmurl2bounds(osmUrl.getText());
+				if (b != null) {
+					gui.minlon = b.min.lon();
+					gui.minlat = b.min.lat();
+					gui.maxlon = b.max.lon();
+					gui.maxlat = b.max.lat();
+					gui.boundingBoxChanged(BoundingBoxSelection.this);
+					updateBboxFields(gui);
+					updateSizeCheck(gui);
+				}
 			}
 		};
 		
-		osmUrl.addKeyListener(osmUrlRefresher);
+		osmUrl.getDocument().addDocumentListener(new osmUrlRefresher());
 		
 		// select content on receiving focus. this seems to be the default in the
