Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 5644)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 5645)
@@ -8,6 +8,4 @@
 import java.awt.Component;
 import java.awt.Cursor;
-import java.awt.Dialog;
-import java.awt.Dimension;
 import java.awt.FlowLayout;
 import java.awt.Font;
@@ -21,8 +19,10 @@
 import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
+import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.image.BufferedImage;
+import java.security.KeyStore;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -37,4 +37,5 @@
 import java.util.Map;
 import java.util.Vector;
+import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.Box;
@@ -42,9 +43,9 @@
 import javax.swing.ImageIcon;
 import javax.swing.JComponent;
-import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.KeyStroke;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.text.JTextComponent;
@@ -66,5 +67,4 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.Shortcut;
-import org.openstreetmap.josm.tools.WindowGeometry;
 
 /**
@@ -75,7 +75,8 @@
     private final Map<String, Map<String, Integer>> valueCount;
 
+    // Selection that we are editing by using both dialogs
+    Collection<OsmPrimitive> sel;
+    
     private String changedKey;
-
-    
     private String objKey;
 
@@ -86,19 +87,17 @@
     };
 
-    Collection<OsmPrimitive> sel;
-        
-            private String lastAddKey = null;
-        private String lastAddValue = null;
-
-        public static final int DEFAULT_LRU_TAGS_NUMBER = 5;
-        public static final int MAX_LRU_TAGS_NUMBER = 9;
-
-        // LRU cache for recently added tags (http://java-planet.blogspot.com/2005/08/how-to-set-up-simple-lru-cache-using.html) 
-        private final Map<Tag, Void> recentTags = new LinkedHashMap<Tag, Void>(MAX_LRU_TAGS_NUMBER+1, 1.1f, true) {
-            @Override
-            protected boolean removeEldestEntry(Map.Entry<Tag, Void> eldest) {
-                return size() > MAX_LRU_TAGS_NUMBER;
-            }
-        };
+    private String lastAddKey = null;
+    private String lastAddValue = null;
+
+    public static final int DEFAULT_LRU_TAGS_NUMBER = 5;
+    public static final int MAX_LRU_TAGS_NUMBER = 9;
+
+    // LRU cache for recently added tags (http://java-planet.blogspot.com/2005/08/how-to-set-up-simple-lru-cache-using.html) 
+    private final Map<Tag, Void> recentTags = new LinkedHashMap<Tag, Void>(MAX_LRU_TAGS_NUMBER+1, 1.1f, true) {
+        @Override
+        protected boolean removeEldestEntry(Map.Entry<Tag, Void> eldest) {
+            return size() > MAX_LRU_TAGS_NUMBER;
+        }
+    };
 
     TagEditHelper(DefaultTableModel propertyData, Map<String, Map<String, Integer>> valueCount) {
@@ -139,5 +138,5 @@
     public void editProperty(final int row) {
         changedKey = null;
-        Collection<OsmPrimitive> sel = Main.main.getCurrentDataSet().getSelected();
+        sel = Main.main.getCurrentDataSet().getSelected();
         if (sel.isEmpty()) return;
 
@@ -472,4 +471,15 @@
                 recentTagsToShow = MAX_LRU_TAGS_NUMBER;
             }
+            
+            // Add tag on Shift-Enter
+            mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
+                        KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_MASK), "addAndContinue");
+                mainPanel.getActionMap().put("addAndContinue", new AbstractAction() {
+                    @Override
+                    public void actionPerformed(ActionEvent e) {
+                        performTagAdding();
+                    }
+                });
+                    
             suggestRecentlyAddedTags(mainPanel, recentTagsToShow, focus);
             
