Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java	(revision 15748)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java	(revision 15751)
@@ -9,4 +9,5 @@
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.swing.AbstractAction;
@@ -40,15 +41,18 @@
     protected abstract Collection<String> getString(Tagged p, String key);
 
-    @Override
-    public void actionPerformed(ActionEvent ae) {
+    protected Stream<String> valueStream() {
         int[] rows = tagTable.getSelectedRows();
         Collection<? extends Tagged> sel = objectSupplier.get();
-        if (rows.length == 0 || sel == null || sel.isEmpty()) return;
-
-        final String values = Arrays.stream(rows)
+        if (rows.length == 0 || sel == null || sel.isEmpty()) return Stream.empty();
+        return Arrays.stream(rows)
                 .mapToObj(keySupplier)
                 .flatMap(key -> sel.stream().map(p -> getString(p, key)))
                 .filter(Objects::nonNull)
-                .flatMap(Collection::stream)
+                .flatMap(Collection::stream);
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent ae) {
+        final String values = valueStream()
                 .sorted()
                 .collect(Collectors.joining("\n"));
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/CopyKeyValueAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/CopyKeyValueAction.java	(revision 15748)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/CopyKeyValueAction.java	(revision 15751)
@@ -3,4 +3,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.util.Collection;
@@ -10,4 +11,6 @@
 
 import javax.swing.JTable;
+import javax.swing.event.PopupMenuEvent;
+import javax.swing.event.PopupMenuListener;
 
 import org.openstreetmap.josm.data.osm.Tag;
@@ -18,5 +21,5 @@
  * @since 13521
  */
-public class CopyKeyValueAction extends AbstractCopyAction {
+public class CopyKeyValueAction extends AbstractCopyAction implements PopupMenuListener {
 
     /**
@@ -28,6 +31,10 @@
     public CopyKeyValueAction(JTable tagTable, IntFunction<String> keyFn, Supplier<Collection<? extends Tagged>> objectSp) {
         super(tagTable, keyFn, objectSp);
-        putValue(NAME, tr("Copy selected Key(s)/Value(s)"));
+        setName(0);
         putValue(SHORT_DESCRIPTION, tr("Copy the key and value of the selected tag(s) to clipboard"));
+    }
+
+    private void setName(long n) {
+        putValue(NAME, trn("Copy selected {0} Key/Value", "Copy selected {0} Keys/Values", n, n));
     }
 
@@ -37,3 +44,18 @@
         return v == null ? null : Collections.singleton(new Tag(key, v).toString());
     }
+
+    @Override
+    public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
+        setName(valueStream().count());
+    }
+
+    @Override
+    public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
+        // Do nothing
+    }
+
+    @Override
+    public void popupMenuCanceled(PopupMenuEvent e) {
+        // Do nothing
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 15748)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 15751)
@@ -447,4 +447,5 @@
         tagMenu.add(copyValueAction);
         tagMenu.add(copyKeyValueAction);
+        tagMenu.addPopupMenuListener(copyKeyValueAction);
         tagMenu.add(copyAllKeyValueAction);
         tagMenu.addSeparator();
