Index: applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java
===================================================================
--- applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java	(revision 36134)
+++ applications/editors/josm/plugins/reltoolbox/src/relcontext/RelContextDialog.java	(revision 36136)
@@ -178,27 +178,14 @@
         rcPanel.add(chosenRelationPanel, BorderLayout.NORTH);
 
-        roleBox.addPropertyChangeListener("enabled", new PropertyChangeListener() {
-            @Override
-            public void propertyChange(PropertyChangeEvent evt) {
-                boolean showRoleBox = roleBox.isEnabled();
-                roleBox.setVisible(showRoleBox);
-                chosenRelationComponent.setVisible(!showRoleBox);
-            }
+        roleBox.addPropertyChangeListener("enabled", evt -> {
+            boolean showRoleBox = roleBox.isEnabled();
+            roleBox.setVisible(showRoleBox);
+            chosenRelationComponent.setVisible(!showRoleBox);
         });
 
-        sortAndFixAction.addPropertyChangeListener(new PropertyChangeListener() {
-            @Override
-            public void propertyChange(PropertyChangeEvent evt) {
-                sortAndFixButton.setVisible(sortAndFixAction.isEnabled());
-            }
-        });
+        sortAndFixAction.addPropertyChangeListener(evt -> sortAndFixButton.setVisible(sortAndFixAction.isEnabled()));
         sortAndFixButton.setVisible(false);
 
-        downloadChosenRelationAction.addPropertyChangeListener(new PropertyChangeListener() {
-            @Override
-            public void propertyChange(PropertyChangeEvent evt) {
-                downloadButton.setVisible(downloadChosenRelationAction.isEnabled());
-            }
-        });
+        downloadChosenRelationAction.addPropertyChangeListener(evt -> downloadButton.setVisible(downloadChosenRelationAction.isEnabled()));
         downloadButton.setVisible(false);
         if (Config.getPref().getBoolean(PREF_PREFIX + ".hidetopline", false)) {
@@ -317,17 +304,14 @@
         columns.getColumn(1).setPreferredWidth(40);
         columns.getColumn(0).setPreferredWidth(220);
-        relationsTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
-            @Override
-            public void valueChanged(ListSelectionEvent e) {
-                int selectedRow = relationsTable.getSelectedRow();
-                if (selectedRow >= 0) {
-                    chosenRelation.set((Relation) relationsData.getValueAt(selectedRow, 0));
-                    relationsTable.clearSelection();
-                }
+        relationsTable.getSelectionModel().addListSelectionListener(e -> {
+            int selectedRow = relationsTable.getSelectedRow();
+            if (selectedRow >= 0) {
+                chosenRelation.set((Relation) relationsData.getValueAt(selectedRow, 0));
+                relationsTable.clearSelection();
             }
         });
     }
 
-    private JComponent sizeButton(JComponent b, int width, int height) {
+    private static JComponent sizeButton(JComponent b, int width, int height) {
         Dimension pref = b.getPreferredSize();
         b.setPreferredSize(new Dimension(width <= 0 ? pref.width : width, height <= 0 ? pref.height : height));
@@ -495,10 +479,7 @@
         dlg.setModalityType(ModalityType.DOCUMENT_MODAL);
 
-        role.getEditor().addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                dlg.setVisible(false);
-                optionPane.setValue(JOptionPane.OK_OPTION);
-            }
+        role.getEditor().addActionListener(e -> {
+            dlg.setVisible(false);
+            optionPane.setValue(JOptionPane.OK_OPTION);
         });
 
@@ -752,5 +733,5 @@
         @Override
         public void setSelectedItem(Object anItem) {
-            int newIndex = anItem instanceof String ? roles.indexOf((String) anItem) : -1;
+            int newIndex = anItem instanceof String ? roles.indexOf(anItem) : -1;
             if (newIndex != selectedIndex) {
                 selectedIndex = newIndex;
Index: applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/ReconstructPolygonAction.java
===================================================================
--- applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/ReconstructPolygonAction.java	(revision 36134)
+++ applications/editors/josm/plugins/reltoolbox/src/relcontext/actions/ReconstructPolygonAction.java	(revision 36136)
@@ -64,5 +64,5 @@
         boolean wont = false;
         for (RelationMember m : r.getMembers()) {
-            if (m.isWay()) {
+            if (m.isWay() && m.getWay().getReferrers().size() == 1) {
                 ways.add(m.getWay());
             } else {
@@ -72,5 +72,6 @@
         if (wont) {
             JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
-                    tr("Multipolygon must consist only of ways"), tr("Reconstruct polygon"), JOptionPane.ERROR_MESSAGE);
+                    tr("Multipolygon must consist only of ways with one referring relation"),
+                    tr("Reconstruct polygon"), JOptionPane.ERROR_MESSAGE);
             return;
         }
@@ -174,8 +175,5 @@
                                 candidateWay = tmp;
                             }
-                            final Command deleteCommand = DeleteCommand.delete(Collections.singleton(w));
-                            if (deleteCommand != null) {
-                                commands.add(deleteCommand);
-                            }
+                            commands.add(new DeleteCommand(w));
                         }
                     }
