diff --git a/packages/svelte/src/internal/client/reactivity/batch.js b/packages/svelte/src/internal/client/reactivity/batch.js
index 2c95985500..ea4698073c 100644
--- a/packages/svelte/src/internal/client/reactivity/batch.js
+++ b/packages/svelte/src/internal/client/reactivity/batch.js
@@ -563,7 +563,7 @@ function flush_queued_effects(effects) {
var effect = effects[i++];
if ((effect.f & (DESTROYED | INERT)) === 0 && is_dirty(effect)) {
- var wv = write_version;
+ var n = current_batch ? current_batch.current.size : 0;
update_effect(effect);
@@ -586,7 +586,11 @@ function flush_queued_effects(effects) {
// if state is written in a user effect, abort and re-schedule, lest we run
// effects that should be removed as a result of the state change
- if (write_version > wv && (effect.f & USER_EFFECT) !== 0) {
+ if (
+ current_batch !== null &&
+ current_batch.current.size > n &&
+ (effect.f & USER_EFFECT) !== 0
+ ) {
break;
}
}
diff --git a/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/Component.svelte b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/Component.svelte
new file mode 100644
index 0000000000..7a54323cb9
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/Component.svelte
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/_config.js b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/_config.js
new file mode 100644
index 0000000000..2e4a27cf09
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/_config.js
@@ -0,0 +1,5 @@
+import { test } from '../../test';
+
+export default test({
+ async test() {}
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/main.svelte b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/main.svelte
new file mode 100644
index 0000000000..258918e903
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/1000-reading-derived-effects/main.svelte
@@ -0,0 +1,8 @@
+
+
+{#each arr}
+
+{/each}