Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 14710)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java	(revision 14713)
@@ -9,9 +9,10 @@
 import java.awt.Dialog;
 import java.awt.FlowLayout;
+import java.awt.Point;
 import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -19,4 +20,5 @@
 import java.util.Set;
 import java.util.Stack;
+import java.util.stream.Collectors;
 
 import javax.swing.AbstractAction;
@@ -24,5 +26,7 @@
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
+import javax.swing.JTree;
 import javax.swing.SwingUtilities;
 import javax.swing.event.TreeSelectionEvent;
@@ -33,4 +37,5 @@
 import org.openstreetmap.josm.data.osm.DataSetMerger;
 import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
@@ -39,7 +44,9 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.PopupMenuHandler;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.gui.progress.swing.PleaseWaitProgressMonitor;
+import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
 import org.openstreetmap.josm.io.OsmApi;
 import org.openstreetmap.josm.io.OsmApiException;
@@ -88,7 +95,11 @@
         add(pane, BorderLayout.CENTER);
 
+        final JPopupMenu popupMenu = new JPopupMenu();
+        final PopupMenuHandler popupMenuHandler = new PopupMenuHandler(popupMenu);
+        RelationPopupMenus.setupHandler(popupMenuHandler);
+
         add(buildButtonPanel(), BorderLayout.SOUTH);
         childTree.setToggleClickCount(0);
-        childTree.addMouseListener(new MouseAdapter() {
+        childTree.addMouseListener(new PopupMenuLauncher(popupMenu) {
             @Override
             public void mouseClicked(MouseEvent e) {
@@ -103,4 +114,19 @@
                     }
                 }
+            }
+
+            @Override
+            protected TreePath checkTreeSelection(JTree tree, Point p) {
+                final TreePath treeSelection = super.checkTreeSelection(tree, p);
+                final TreePath[] selectionPaths = tree.getSelectionPaths();
+                if (selectionPaths == null) {
+                    return treeSelection;
+                }
+                final List<OsmPrimitive> relations = Arrays.stream(selectionPaths)
+                        .map(TreePath::getLastPathComponent)
+                        .map(OsmPrimitive.class::cast)
+                        .collect(Collectors.toList());
+                popupMenuHandler.setPrimitives(relations);
+                return treeSelection;
             }
         });
