diff --git a/src/compile/nodes/Component.ts b/src/compile/nodes/Component.ts
index 8bb5537856..c5efd25afb 100644
--- a/src/compile/nodes/Component.ts
+++ b/src/compile/nodes/Component.ts
@@ -176,7 +176,7 @@ export default class Component extends Node {
const { name, dependencies } = attr;
const condition = dependencies.size > 0 && (dependencies.size !== allDependencies.size)
- ? [...dependencies].map(d => `changed.${d}`).join(' || ')
+ ? `(${[...dependencies].map(d => `changed.${d}`).join(' || ')})`
: null;
if (attr.isSpread) {
diff --git a/src/compile/nodes/Element.ts b/src/compile/nodes/Element.ts
index 8c7fe2b217..6c174f0272 100644
--- a/src/compile/nodes/Element.ts
+++ b/src/compile/nodes/Element.ts
@@ -559,7 +559,7 @@ export default class Element extends Node {
.filter(attr => attr.type === 'Attribute' || attr.type === 'Spread')
.forEach(attr => {
const condition = attr.dependencies.size > 0
- ? [...attr.dependencies].map(d => `changed.${d}`).join(' || ')
+ ? `(${[...attr.dependencies].map(d => `changed.${d}`).join(' || ')})`
: null;
if (attr.isSpread) {
diff --git a/test/runtime/samples/spread-component-multiple-dependencies/Widget.html b/test/runtime/samples/spread-component-multiple-dependencies/Widget.html
new file mode 100644
index 0000000000..ab2d2d0242
--- /dev/null
+++ b/test/runtime/samples/spread-component-multiple-dependencies/Widget.html
@@ -0,0 +1 @@
+{foo} {baz}
diff --git a/test/runtime/samples/spread-component-multiple-dependencies/_config.js b/test/runtime/samples/spread-component-multiple-dependencies/_config.js
new file mode 100644
index 0000000000..42b0c5693f
--- /dev/null
+++ b/test/runtime/samples/spread-component-multiple-dependencies/_config.js
@@ -0,0 +1,10 @@
+export default {
+ html: `b baz`,
+ test(assert, component, target) {
+ component.set({ foo: true });
+ assert.htmlEqual(
+ target.innerHTML,
+ `a baz`
+ );
+ },
+};
diff --git a/test/runtime/samples/spread-component-multiple-dependencies/main.html b/test/runtime/samples/spread-component-multiple-dependencies/main.html
new file mode 100644
index 0000000000..dedfa27477
--- /dev/null
+++ b/test/runtime/samples/spread-component-multiple-dependencies/main.html
@@ -0,0 +1,13 @@
+