Index: trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 13816)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 13817)
@@ -21,6 +21,8 @@
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import javax.swing.AbstractAction;
+import javax.swing.JPopupMenu;
 import javax.swing.JTable;
 import javax.swing.ListSelectionModel;
@@ -38,4 +40,5 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.SideButton;
+import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
@@ -43,4 +46,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Logging;
@@ -52,5 +56,5 @@
  * Displays a dialog with all users who have last edited something in the
  * selection area, along with the number of objects.
- *
+ * @since 237
  */
 public class UserListDialog extends ToggleDialog implements DataSelectionListener, ActiveLayerChangeListener {
@@ -62,4 +66,5 @@
     private UserTableModel model;
     private SelectUsersPrimitivesAction selectionUsersPrimitivesAction;
+    private final JPopupMenu popupMenu = new JPopupMenu();
 
     /**
@@ -104,4 +109,13 @@
             new SideButton(showUserInfoAction)
         ));
+
+        // -- popup menu
+        popupMenu.add(new AbstractAction(tr("Copy")) {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                ClipboardUtils.copyString(getSelectedUsers().stream().map(User::getName).collect(Collectors.joining(", ")));
+            }
+        });
+        userTable.addMouseListener(new PopupMenuLauncher(popupMenu));
     }
 
@@ -144,4 +158,9 @@
         super.showDialog();
         refreshForActiveLayer(MainApplication.getLayerManager().getActiveLayer());
+    }
+
+    private List<User> getSelectedUsers() {
+        int[] rows = userTable.getSelectedRows();
+        return rows.length == 0 ? Collections.emptyList() : model.getSelectedUsers(rows);
     }
 
@@ -195,8 +214,5 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            int[] rows = userTable.getSelectedRows();
-            if (rows.length == 0)
-                return;
-            List<User> users = model.getSelectedUsers(rows);
+            List<User> users = getSelectedUsers();
             if (users.isEmpty())
                 return;
