Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4108)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4109)
@@ -364,4 +364,6 @@
     }
 
+    private static String lastAddKey = null;
+    private static String lastAddValue = null;
     /**
      * Open the add selection dialog and add a new key/value to the table (and
@@ -380,10 +382,16 @@
         List<AutoCompletionListItem> keyList = autocomplete.getKeys();
 
+        AutoCompletionListItem itemToSelect = null; 
         // remove the object's tag keys from the list
         Iterator<AutoCompletionListItem> iter = keyList.iterator();
         while (iter.hasNext()) {
             AutoCompletionListItem item = iter.next();
+            if (item.getValue().equals(lastAddKey)) {
+                itemToSelect = item;
+            }
             for (int i = 0; i < propertyData.getRowCount(); ++i) {
                 if (item.getValue().equals(propertyData.getValueAt(i, 0))) {
+                    if (itemToSelect == item)
+                        itemToSelect = null;
                     iter.remove();
                     break;
@@ -404,4 +412,8 @@
         values.setEditable(true);
         p2.add(values, BorderLayout.CENTER);
+        if (itemToSelect != null) {
+            keys.setSelectedItem(itemToSelect);
+            values.setSelectedItem(lastAddValue);
+        }
 
         FocusAdapter focus = addFocusAdapter(-1, keys, values, autocomplete);
@@ -425,4 +437,6 @@
         if (value.equals(""))
             return;
+        lastAddKey = key;
+        lastAddValue = value;
         Main.main.undoRedo.add(new ChangePropertyCommand(sel, key, value));
         btnAdd.requestFocusInWindow();
