Index: src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 19436)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(working copy)
@@ -160,6 +160,7 @@
      * A list of listeners that need to be notified on clipboard content changes.
      */
     private final ArrayList<FlavorListener> clipboardListeners = new ArrayList<>();
+    private boolean isSaving;
 
     /**
      * Creates a new relation editor for the given relation. The relation will be saved if the user
@@ -1070,7 +1071,7 @@
             } else if (isDirtyRelation()) {
                 if (!isDirtyEditor()) {
                     reloadDataFromRelation();
-                } else {
+                } else if (!isSaving) {
                     new Notification(tr("Relation modified outside of relation editor with pending changes. Conflict resolution required."))
                     .setIcon(JOptionPane.WARNING_MESSAGE).show();
                 }
@@ -1085,4 +1086,9 @@
         return (snapshot != null && !memberTableModel.hasSameMembersAs(snapshot)) ||
                 tagEditorPanel.getModel().isDirty() || relation == null || relation.getDataSet() == null;
     }
+
+    @Override
+    public void setIsSaving(boolean b) {
+        isSaving = b;
+    }
 }
Index: src/org/openstreetmap/josm/gui/dialogs/relation/IRelationEditor.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/IRelationEditor.java	(revision 19436)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/IRelationEditor.java	(working copy)
@@ -66,6 +66,13 @@
     boolean isDirtyEditor();
 
     /**
+     * Set the isSaving flag to the given value
+     * @param b the flag value
+     * @since xxx
+     */
+    void setIsSaving(boolean b);
+
+    /**
      * Reloads data from relation.
      */
     void reloadDataFromRelation();
Index: src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java	(revision 19436)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java	(working copy)
@@ -115,6 +115,7 @@
 
     @Override
     public final void setRelation(Relation relation) {
+        setIsSaving(false);
         setRelationSnapshot((relation == null) ? null : new Relation(relation));
         Relation oldValue = this.relation;
         this.relation = relation;
Index: src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(revision 19436)
+++ src/org/openstreetmap/josm/gui/dialogs/relation/actions/SavingAction.java	(working copy)
@@ -171,6 +171,7 @@
                         warnDoubleConflict();
                         return false;
                     }
+                    getEditor().setIsSaving(true);
                     applyExistingConflictingRelation(getTagModel());
                     hideEditor();
                     return false;
@@ -177,6 +178,7 @@
                 } else
                     return false;
             } else {
+                getEditor().setIsSaving(true);
                 applyExistingNonConflictingRelation(getTagModel());
             }
         }
Index: test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java	(revision 19436)
+++ test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java	(working copy)
@@ -122,6 +122,11 @@
             public OsmDataLayer getLayer() {
                 return layer;
             }
+
+            @Override
+            public void setIsSaving(boolean b) {
+                // do nothing
+            }
         };
     }
 
