diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte
new file mode 100644
index 000000000000..6d826954c921
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/Flavour.svelte
@@ -0,0 +1,5 @@
+
+
diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js
new file mode 100644
index 000000000000..36fb5b494f50
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/_config.js
@@ -0,0 +1,36 @@
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, window }) {
+ const els = target.querySelectorAll('input');
+ assert.equal(els.length, 3);
+ const [input1, input2, input3] = els;
+ const event = new window.Event('change');
+
+ // I don't know why this is needed to set the checkboxes back to default (unchecked)
+ for (const input of els) {
+ input.checked = false;
+ await input.dispatchEvent(event);
+ }
+
+ assert.equal(input1.checked, false);
+ assert.equal(input2.checked, false);
+ assert.equal(input3.checked, false);
+
+ input3.checked = true;
+ await input3.dispatchEvent(event);
+ await Promise.resolve();
+
+ assert.equal(input1.checked, false);
+ assert.equal(input2.checked, false);
+ assert.equal(input3.checked, true);
+
+ input1.checked = true;
+ await input1.dispatchEvent(event);
+ await Promise.resolve();
+
+ assert.equal(input1.checked, true);
+ assert.equal(input2.checked, false);
+ assert.equal(input3.checked, true);
+ }
+});
diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte
new file mode 100644
index 000000000000..8b8c981f753d
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/main.svelte
@@ -0,0 +1,14 @@
+
+
+{#each menu as flavour}
+
+{/each}
diff --git a/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js
new file mode 100644
index 000000000000..b5db04a1eded
--- /dev/null
+++ b/packages/svelte/tests/runtime-legacy/samples/nested-component-bind-group/stores.js
@@ -0,0 +1,5 @@
+import { writable } from 'svelte/store';
+
+export const flavours = writable([]);
+
+flavours.subscribe(console.log)
\ No newline at end of file