Index: src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 4096)
+++ src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(working copy)
@@ -27,6 +27,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.ListIterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.TreeMap;
@@ -370,10 +371,27 @@
         AutoCompletionManager autocomplete = Main.main.getEditLayer().data.getAutoCompletionManager();
         List<AutoCompletionListItem> keyList = autocomplete.getKeys();
 
+        String lt=null;
+        // scan history for single last tag-adding command
+        if (Main.main.undoRedo.commands.size() > 0) {
+            ListIterator<Command> itr = Main.main.undoRedo.commands.listIterator(
+                    Main.main.undoRedo.commands.size());
+            Command cmd;
+             while (itr.hasPrevious()) {
+                cmd = itr.previous();
+                if (cmd instanceof ChangePropertyCommand) {
+                    // remember the added tag
+                    lt = ((ChangePropertyCommand) cmd).getKey();
+                    break;
+                }
+            }
+        }
+        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(lt)) { itemToSelect=item; }
             for (int i = 0; i < propertyData.getRowCount(); ++i) {
                 if (item.getValue().equals(propertyData.getValueAt(i, 0))) {
                     iter.remove();
@@ -385,6 +403,7 @@
         Collections.sort(keyList, defaultACItemComparator);
         keys.setPossibleACItems(keyList);
         keys.setEditable(true);
+        if (itemToSelect!=null) keys.setSelectedItem(itemToSelect);
 
         p.add(keys, BorderLayout.CENTER);
 
Index: src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 4096)
+++ src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(working copy)
@@ -61,6 +61,10 @@
         }
     }
 
+    public String getKey() {
+        return key;
+    }
+
     public ChangePropertyCommand(OsmPrimitive object, String key, String value) {
         this.objects = new LinkedList<OsmPrimitive>();
         this.key = key;
