diff --git a/compiler/generate/visitors/attributes/addComponentAttributes.js b/compiler/generate/visitors/attributes/addComponentAttributes.js
index f574f17459..9f002cd6c4 100644
--- a/compiler/generate/visitors/attributes/addComponentAttributes.js
+++ b/compiler/generate/visitors/attributes/addComponentAttributes.js
@@ -116,7 +116,7 @@ export default function addComponentAttributes ( generator, node, local ) {
` );
local.teardown.push( deindent`
- component.refs.${attribute.name} = null;
+ if ( component.refs.${attribute.name} === ${local.name} ) component.refs.${attribute.name} = null;
` );
}
diff --git a/compiler/generate/visitors/attributes/addElementAttributes.js b/compiler/generate/visitors/attributes/addElementAttributes.js
index f1501a61b1..d50d8173b6 100644
--- a/compiler/generate/visitors/attributes/addElementAttributes.js
+++ b/compiler/generate/visitors/attributes/addElementAttributes.js
@@ -166,7 +166,7 @@ export default function addElementAttributes ( generator, node, local ) {
` );
local.teardown.push( deindent`
- component.refs.${attribute.name} = null;
+ if ( component.refs.${attribute.name} === ${local.name} ) component.refs.${attribute.name} = null;
` );
}
diff --git a/test/compiler/refs-unset/_config.js b/test/compiler/refs-unset/_config.js
new file mode 100644
index 0000000000..dd69303ec7
--- /dev/null
+++ b/test/compiler/refs-unset/_config.js
@@ -0,0 +1,23 @@
+export default {
+ data: {
+ x: true
+ },
+
+ html: '',
+
+ test ( assert, component, target ) {
+ let canvas = target.querySelector( 'canvas' );
+ assert.equal( canvas, component.refs.foo );
+ assert.equal( canvas.getAttribute( 'data-x' ), 'true' );
+
+ component.set({ x: false });
+ canvas = target.querySelector( 'canvas' );
+ assert.equal( canvas, component.refs.foo );
+ assert.equal( canvas.getAttribute( 'data-x' ), 'false' );
+
+ component.set({ x: true });
+ canvas = target.querySelector( 'canvas' );
+ assert.equal( canvas, component.refs.foo );
+ assert.equal( canvas.getAttribute( 'data-x' ), 'true' );
+ }
+};
diff --git a/test/compiler/refs-unset/main.html b/test/compiler/refs-unset/main.html
new file mode 100644
index 0000000000..0fe6856d8f
--- /dev/null
+++ b/test/compiler/refs-unset/main.html
@@ -0,0 +1,5 @@
+{{#if x}}
+
+{{else}}
+
+{{/if}}