diff --git a/.changeset/sour-bags-fail.md b/.changeset/sour-bags-fail.md
new file mode 100644
index 000000000000..67c9c43a34f8
--- /dev/null
+++ b/.changeset/sour-bags-fail.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: inherit ownerlessness when creating child proxies
diff --git a/packages/svelte/src/internal/client/proxy.js b/packages/svelte/src/internal/client/proxy.js
index e17edc248d47..8f26e6780680 100644
--- a/packages/svelte/src/internal/client/proxy.js
+++ b/packages/svelte/src/internal/client/proxy.js
@@ -84,7 +84,7 @@ export function proxy(value, immutable = true, owners) {
? // @ts-expect-error
new Set([current_component_context.function])
: null
- : new Set(owners);
+ : owners && new Set(owners);
}
return proxy;
diff --git a/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/_config.js b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/_config.js
new file mode 100644
index 000000000000..dc600e1461b5
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/_config.js
@@ -0,0 +1,37 @@
+import { test } from '../../test';
+
+/** @type {typeof console.warn} */
+let warn;
+
+/** @type {any[]} */
+let warnings = [];
+
+export default test({
+ html: ``,
+
+ compileOptions: {
+ dev: true
+ },
+
+ before_test: () => {
+ warn = console.warn;
+
+ console.warn = (...args) => {
+ warnings.push(...args);
+ };
+ },
+
+ after_test: () => {
+ console.warn = warn;
+ warnings = [];
+ },
+
+ async test({ assert, target }) {
+ const btn = target.querySelector('button');
+ await btn?.click();
+
+ assert.htmlEqual(target.innerHTML, ``);
+
+ assert.deepEqual(warnings, []);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/main.svelte b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/main.svelte
new file mode 100644
index 000000000000..ad450a937e40
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/main.svelte
@@ -0,0 +1,9 @@
+
+
+
diff --git a/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/state.svelte.js b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/state.svelte.js
new file mode 100644
index 000000000000..3e7a68cf97d8
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/non-local-mutation-inherited-owner-2/state.svelte.js
@@ -0,0 +1 @@
+export let global = $state({});