Index: trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 17407)
+++ trunk/src/org/openstreetmap/josm/actions/CreateMultipolygonAction.java	(revision 17408)
@@ -339,7 +339,7 @@
             return null;
         }
-        boolean unchanged = rr.a == rr.b;
+        boolean changedMembers = rr.a != rr.b;
         final Relation existingRelation = rr.a;
-        final Relation relation = rr.b;
+        final Relation relation = changedMembers ? rr.b : new Relation(rr.a);
 
         final List<Command> list = removeTagsFromWaysIfNeeded(relation);
@@ -349,12 +349,14 @@
             commandName = getName(false);
         } else {
-            if (!unchanged) {
-                if (relation.getKeys().equals(existingRelation.getKeys()))
-                    list.add(new ChangeMembersCommand(existingRelation, new ArrayList<>(relation.getMembers())));
-                else
-                    list.add(new ChangeCommand(existingRelation, relation));
+            boolean changedKeys = !relation.getKeys().equals(existingRelation.getKeys());
+            if (changedKeys && changedMembers)
+                list.add(new ChangeCommand(existingRelation, relation));
+            else if (changedMembers) {
+                list.add(new ChangeMembersCommand(existingRelation, new ArrayList<>(relation.getMembers())));
+            } else if (changedKeys) {
+                list.add(ChangePropertyCommand.build(existingRelation, relation));
             }
             if (list.isEmpty()) {
-                if (unchanged) {
+                if (!changedMembers) {
                     MultipolygonTest mpTest = new MultipolygonTest();
                     mpTest.visit(existingRelation);
