diff --git a/.changeset/quiet-donkeys-clap.md b/.changeset/quiet-donkeys-clap.md
new file mode 100644
index 0000000000..dc9df3b7e1
--- /dev/null
+++ b/.changeset/quiet-donkeys-clap.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: increment private state fields through a non-`this` receiver
diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js
index 66952eb298..bc483daaed 100644
--- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js
+++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/UpdateExpression.js
@@ -13,7 +13,6 @@ export function UpdateExpression(node, context) {
if (
argument.type === 'MemberExpression' &&
- argument.object.type === 'ThisExpression' &&
argument.property.type === 'PrivateIdentifier' &&
context.state.state_fields.has('#' + argument.property.name)
) {
diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/_config.js b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/_config.js
new file mode 100644
index 0000000000..8f023b602a
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/_config.js
@@ -0,0 +1,22 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+
+export default test({
+ html: ``,
+
+ test({ assert, target }) {
+ const [bump, drop] = target.querySelectorAll('button');
+
+ bump?.click();
+ flushSync();
+ assert.htmlEqual(target.innerHTML, ``);
+
+ bump?.click();
+ flushSync();
+ assert.htmlEqual(target.innerHTML, ``);
+
+ drop?.click();
+ flushSync();
+ assert.htmlEqual(target.innerHTML, ``);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/main.svelte b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/main.svelte
new file mode 100644
index 0000000000..67827aceee
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/class-private-state-increment-other-receiver/main.svelte
@@ -0,0 +1,23 @@
+
+
+
+