diff --git a/src/compile/render-dom/wrappers/InlineComponent/index.ts b/src/compile/render-dom/wrappers/InlineComponent/index.ts
index 1fae0aedcc..df81b13a54 100644
--- a/src/compile/render-dom/wrappers/InlineComponent/index.ts
+++ b/src/compile/render-dom/wrappers/InlineComponent/index.ts
@@ -156,7 +156,7 @@ export default class InlineComponentWrapper extends Wrapper {
component_opts.push(`$$inline: true`);
}
- const fragment_dependencies = new Set();
+ const fragment_dependencies = new Set(this.fragment ? ['$$scope'] : []);
this.slots.forEach(slot => {
slot.block.dependencies.forEach(name => {
const is_let = slot.scope.is_let(name);
diff --git a/test/runtime/samples/component-slot-chained/Inner.svelte b/test/runtime/samples/component-slot-chained/Inner.svelte
new file mode 100644
index 0000000000..8b6c0a40e9
--- /dev/null
+++ b/test/runtime/samples/component-slot-chained/Inner.svelte
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/runtime/samples/component-slot-chained/Outer.svelte b/test/runtime/samples/component-slot-chained/Outer.svelte
new file mode 100644
index 0000000000..c09cc83395
--- /dev/null
+++ b/test/runtime/samples/component-slot-chained/Outer.svelte
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/test/runtime/samples/component-slot-chained/_config.js b/test/runtime/samples/component-slot-chained/_config.js
new file mode 100644
index 0000000000..6c028f8c31
--- /dev/null
+++ b/test/runtime/samples/component-slot-chained/_config.js
@@ -0,0 +1,8 @@
+export default {
+ html: 'one',
+
+ test({ assert, component, target }) {
+ component.text = 'two';
+ assert.htmlEqual(target.innerHTML, `two`);
+ }
+};
diff --git a/test/runtime/samples/component-slot-chained/main.svelte b/test/runtime/samples/component-slot-chained/main.svelte
new file mode 100644
index 0000000000..8a3eb67f8e
--- /dev/null
+++ b/test/runtime/samples/component-slot-chained/main.svelte
@@ -0,0 +1,9 @@
+
+
+
+ {text}
+
\ No newline at end of file