diff --git a/src/lib/dom-tree-api.html b/src/lib/dom-tree-api.html
index ccf0dea031..37fa72cb26 100644
--- a/src/lib/dom-tree-api.html
+++ b/src/lib/dom-tree-api.html
@@ -215,7 +215,7 @@
node.__dom.previousSibling.__dom.nextSibling = node;
}
// update node <-> ref_node
- node.__dom.nextSibling = ref_node;
+ node.__dom.nextSibling = ref_node || null;
if (node.__dom.nextSibling) {
node.__dom.nextSibling.__dom.previousSibling = node;
}
diff --git a/test/unit/polymer-dom.js b/test/unit/polymer-dom.js
index 02af167e9f..76bc284232 100644
--- a/test/unit/polymer-dom.js
+++ b/test/unit/polymer-dom.js
@@ -704,11 +704,13 @@ suite('Polymer.dom accessors', function() {
var after = document.createElement('div');
Polymer.dom(noDistribute).insertBefore(before, child);
Polymer.dom(noDistribute).appendChild(after);
+ Polymer.dom.flush();
assert.equal(Polymer.dom(noDistribute).firstChild, before, 'firstChild incorrect');
assert.equal(Polymer.dom(noDistribute).lastChild, after, 'lastChild incorrect');
assert.equal(Polymer.dom(before).nextSibling, child, 'nextSibling incorrect');
assert.equal(Polymer.dom(child).nextSibling, after, 'nextSibling incorrect');
assert.equal(Polymer.dom(after).previousSibling, child, 'previousSibling incorrect');
+ assert.equal(Polymer.dom(after).nextSibling, null, 'nextSibling incorrect');
assert.equal(Polymer.dom(child).previousSibling, before, 'previousSibling incorrect');
});
@@ -719,11 +721,13 @@ suite('Polymer.dom accessors', function() {
var after = document.createElement('div');
Polymer.dom(distribute).insertBefore(before, child);
Polymer.dom(distribute).appendChild(after);
+ Polymer.dom.flush();
assert.equal(Polymer.dom(distribute).firstChild, before, 'firstChild incorrect');
assert.equal(Polymer.dom(distribute).lastChild, after, 'lastChild incorrect');
assert.equal(Polymer.dom(before).nextSibling, child, 'nextSibling incorrect');
assert.equal(Polymer.dom(child).nextSibling, after, 'nextSibling incorrect');
assert.equal(Polymer.dom(after).previousSibling, child, 'previousSibling incorrect');
+ assert.equal(Polymer.dom(after).nextSibling, null, 'nextSibling incorrect');
assert.equal(Polymer.dom(child).previousSibling, before, 'previousSibling incorrect');
});