diff --git a/.changeset/rich-turtles-learn.md b/.changeset/rich-turtles-learn.md
new file mode 100644
index 0000000000..99f87ecb17
--- /dev/null
+++ b/.changeset/rich-turtles-learn.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: ensure derived reactions have their version kept in sync with the reactive graph
diff --git a/packages/svelte/tests/runtime-runes/samples/derived-version-sync/_config.js b/packages/svelte/tests/runtime-runes/samples/derived-version-sync/_config.js
new file mode 100644
index 0000000000..30012f4d03
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/derived-version-sync/_config.js
@@ -0,0 +1,28 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ async test({ assert, target, logs }) {
+ let [btn1] = target.querySelectorAll('button');
+
+ btn1?.click();
+ flushSync();
+
+ btn1?.click();
+ flushSync();
+
+ logs.length = 0;
+
+ btn1?.click();
+ flushSync();
+
+ assert.deepEqual(logs, ['a', { value: 1 }]);
+
+ logs.length = 0;
+
+ btn1?.click();
+ flushSync();
+
+ assert.deepEqual(logs, ['a', { value: 2 }, 'b', { a: 2 }, 'c', { b: 2 }]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/derived-version-sync/main.svelte b/packages/svelte/tests/runtime-runes/samples/derived-version-sync/main.svelte
new file mode 100644
index 0000000000..8450d2f16e
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/derived-version-sync/main.svelte
@@ -0,0 +1,28 @@
+
+
+