Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 17062)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 17063)
@@ -364,6 +364,7 @@
      */
     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: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/RefreshAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/RefreshAction.java	(revision 17062)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/RefreshAction.java	(revision 17063)
@@ -68,10 +68,7 @@
     @Override
     public void updateEnabledState() {
-        Relation relation = editorAccess.getEditor().getRelation();
         Relation snapshot = editorAccess.getEditor().getRelationSnapshot();
-        setEnabled(snapshot != null && (
-            !relation.hasEqualTechnicalAttributes(snapshot) ||
-            !relation.hasEqualSemanticAttributes(snapshot)
-        ));
+        setEnabled((!getMemberTableModel().hasSameMembersAs(snapshot) || getTagModel().isDirty())
+                && !(snapshot == null && getTagModel().getTags().isEmpty()));
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(revision 17062)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(revision 17063)
@@ -5,6 +5,4 @@
 
 import java.awt.Component;
-import java.util.List;
-import java.util.stream.Collectors;
 
 import javax.swing.JOptionPane;
@@ -18,5 +16,4 @@
 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;
@@ -51,13 +48,4 @@
         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);
-            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);
-        }
         // If the user wanted to create a new relation, but hasn't added any members or
         // tags, don't add an empty relation
