Index: src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 17061)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(working copy)
@@ -363,8 +363,9 @@
      * @param relation relation
      */
     public void applyToRelation(Relation relation) {
-        relation.setMembers(members.stream()
-                .filter(rm -> !rm.getMember().isDeleted()).collect(Collectors.toList()));
+        relation.setMembers(
+                members.stream().filter(rm -> !rm.getMember().isDeleted() && rm.getMember().getDataSet() != null)
+                        .collect(Collectors.toList()));
     }
 
     /**
Index: src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(revision 17061)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(working copy)
@@ -4,8 +4,6 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.Component;
-import java.util.List;
-import java.util.stream.Collectors;
 
 import javax.swing.JOptionPane;
 import javax.swing.SwingUtilities;
@@ -17,7 +15,6 @@
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
 import org.openstreetmap.josm.data.osm.Relation;
-import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane.ButtonSpec;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -50,11 +47,7 @@
         final Relation newRelation = new Relation();
         tagEditorModel.applyToPrimitive(newRelation);
         getMemberTableModel().applyToRelation(newRelation);
-        List<RelationMember> newMembers = newRelation.getMembers().stream()
-                .filter(rm -> !rm.getMember().isDeleted())
-                .collect(Collectors.toList());
-        if (newRelation.getMembersCount() != newMembers.size()) {
-            newRelation.setMembers(newMembers);
+        if (newRelation.getMembersCount() != getMemberTableModel().getRowCount()) {
             String msg = tr("One or more members of this new relation have been deleted while the relation editor\n" +
             "was open. They have been removed from the relation members list.");
             JOptionPane.showMessageDialog(MainApplication.getMainFrame(), msg, tr("Warning"), JOptionPane.WARNING_MESSAGE);
