Index: trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 1344)
+++ trunk/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java	(revision 1345)
@@ -20,4 +20,6 @@
 import javax.swing.JTextField;
 import javax.swing.SwingUtilities;
+import javax.swing.event.DocumentListener; 
+import javax.swing.event.DocumentEvent; 
 
 import org.openstreetmap.josm.data.Bounds;
@@ -76,26 +78,21 @@
         }
         
+        class osmUrlRefresher implements DocumentListener { 
+            public void changedUpdate(DocumentEvent e) { parseURL(gui); } 
+            public void insertUpdate(DocumentEvent e) { parseURL(gui); } 
+            public void removeUpdate(DocumentEvent e) { parseURL(gui); } 
+        } 
+        
         KeyListener osmUrlKeyListener = new KeyListener() {
-          public void keyPressed(KeyEvent keyEvent) {}
-
-          public void keyReleased(KeyEvent keyEvent) {
-              Bounds b = OsmUrlToBounds.parse(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);
-                  updateUrl(gui);
-                  if(keyEvent.getKeyCode() == keyEvent.VK_ENTER) 
-                      gui.closeDownloadDialog(true);
-              }
-          }
-
-          public void keyTyped(KeyEvent keyEvent) {}
+            public void keyPressed(KeyEvent keyEvent) {}
+            public void keyReleased(KeyEvent keyEvent) {
+                if (keyEvent.getKeyCode() == keyEvent.VK_ENTER && parseURL(gui))
+                    gui.closeDownloadDialog(true);
+            }
+            public void keyTyped(KeyEvent keyEvent) {}
         };
         
         osmUrl.addKeyListener(osmUrlKeyListener);
+        osmUrl.getDocument().addDocumentListener(new osmUrlRefresher()); 
 
         // select content on receiving focus. this seems to be the default in the
@@ -145,4 +142,17 @@
         updateUrl(gui);
     }
+    
+    private boolean parseURL(DownloadDialog gui) {
+        Bounds b = OsmUrlToBounds.parse(osmUrl.getText());
+        if(b == null) return false;
+        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);
+        updateUrl(gui);
+        return true;
+    }
 
     private void updateBboxFields(DownloadDialog gui) {
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 1344)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 1345)
@@ -46,4 +46,5 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.OpenBrowser;
+import org.openstreetmap.josm.tools.UrlLabel;
 import org.openstreetmap.josm.tools.XmlObjectParser;
 import org.xml.sax.SAXException;
@@ -375,5 +376,5 @@
         @Override public void addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
             if(locale_text == null)
-                locale_text = text == null ? tr("Open map features in browser") : tr(text);
+                locale_text = text == null ? tr("More information about this feature") : tr(text);
             JButton b = new JButton(locale_text);
             b.addActionListener(new ActionListener(){
@@ -382,5 +383,5 @@
                 }
             });
-            p.add(b, GBC.eol().anchor(GBC.EAST));
+            p.add(new UrlLabel(locale_href, locale_text), GBC.eol().anchor(GBC.WEST));
         }
         @Override public void addCommands(Collection<OsmPrimitive> sel, List<Command> cmds) {}
@@ -567,7 +568,15 @@
             return null;
         JPanel p = new JPanel(new GridBagLayout());
+        LinkedList<Item> l = new LinkedList<Item>();
 
         for (Item i : data)
-            i.addToPanel(p, selected);
+        {
+            if(i instanceof Link)
+                l.add(i);
+            else
+                i.addToPanel(p, selected);
+        }
+        for(Item link : l)
+            link.addToPanel(p, selected);
         return p;
     }
