diff --git a/src/view/renderer.js b/src/view/renderer.js
index 05af38295..a16adc5a2 100644
--- a/src/view/renderer.js
+++ b/src/view/renderer.js
@@ -256,7 +256,7 @@ export default class Renderer {
const actualDomChildren = this.domConverter.mapViewToDom( viewElement ).childNodes;
const expectedDomChildren = Array.from(
- this.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument )
+ this.domConverter.viewChildrenToDom( viewElement, domElement.ownerDocument, { withChildren: false } )
);
const diff = this._diffNodeLists( actualDomChildren, expectedDomChildren );
const actions = this._findReplaceActions( diff, actualDomChildren, expectedDomChildren );
diff --git a/tests/view/renderer.js b/tests/view/renderer.js
index 7e6600138..d9fdbf668 100644
--- a/tests/view/renderer.js
+++ b/tests/view/renderer.js
@@ -1683,6 +1683,36 @@ describe( 'Renderer', () => {
);
} );
+ // #1451
+ it( 'should correctly render changed children even if direct parent is not marked to sync', () => {
+ const inputView =
+ '