diff --git a/index.html b/index.html
index 3cddaed4f..5dc6ad04d 100644
--- a/index.html
+++ b/index.html
@@ -118,8 +118,10 @@
+
+
diff --git a/js/id/actions/change_member.js b/js/id/actions/change_member.js
new file mode 100644
index 000000000..ece118fab
--- /dev/null
+++ b/js/id/actions/change_member.js
@@ -0,0 +1,5 @@
+iD.actions.ChangeMember = function(relationId, member, memberIndex) {
+ return function(graph) {
+ return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
+ }
+};
diff --git a/test/index.html b/test/index.html
index 580885630..930bf8e5e 100644
--- a/test/index.html
+++ b/test/index.html
@@ -103,6 +103,7 @@
+
@@ -185,6 +186,7 @@
+
diff --git a/test/index_packaged.html b/test/index_packaged.html
index 15bcef8df..b1a09c908 100644
--- a/test/index_packaged.html
+++ b/test/index_packaged.html
@@ -27,6 +27,7 @@
+
diff --git a/test/spec/actions/change_member.js b/test/spec/actions/change_member.js
new file mode 100644
index 000000000..c3d4291f1
--- /dev/null
+++ b/test/spec/actions/change_member.js
@@ -0,0 +1,9 @@
+describe("iD.actions.ChangeMember", function () {
+ it("updates the member at the specified index", function () {
+ var node = iD.Node(),
+ relation = iD.Relation({members: [{id: node.id}]}),
+ action = iD.actions.ChangeMember(relation.id, {id: node.id, role: 'node'}, 0),
+ graph = action(iD.Graph([node, relation]));
+ expect(graph.entity(relation.id).members).to.eql([{id: node.id, role: 'node'}]);
+ });
+});
diff --git a/test/spec/actions/delete_member.js b/test/spec/actions/delete_member.js
index bb6e9c85c..f23cdb700 100644
--- a/test/spec/actions/delete_member.js
+++ b/test/spec/actions/delete_member.js
@@ -1,7 +1,7 @@
describe("iD.actions.DeleteMember", function () {
it("removes the member at the specified index", function () {
var node = iD.Node(),
- relation = iD.Relation({members: [node.id]}),
+ relation = iD.Relation({members: [{id: node.id}]}),
action = iD.actions.DeleteMember(relation.id, 0),
graph = action(iD.Graph([node, relation]));
expect(graph.entity(relation.id).members).to.eql([]);