diff --git a/.changeset/three-steaks-wash.md b/.changeset/three-steaks-wash.md
new file mode 100644
index 000000000000..caf0ea2bfe35
--- /dev/null
+++ b/.changeset/three-steaks-wash.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: correctly tag private class state fields
diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/ClassBody.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/ClassBody.js
index e78a8824ddbf..5bd9add2a59e 100644
--- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/ClassBody.js
+++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/ClassBody.js
@@ -78,7 +78,7 @@ export function ClassBody(node, context) {
? /** @type {CallExpression} */ (context.visit(definition.value, child_state))
: undefined;
- if (dev) {
+ if (dev && field.node === definition) {
value = b.call('$.tag', value, b.literal(`${declaration.id?.name ?? '[class]'}.${name}`));
}
diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/_config.js b/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/_config.js
new file mode 100644
index 000000000000..98b3fb6cbce3
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/_config.js
@@ -0,0 +1,31 @@
+import { flushSync } from 'svelte';
+import { test } from '../../test';
+import { normalise_trace_logs } from '../../../helpers.js';
+
+export default test({
+ compileOptions: {
+ dev: true
+ },
+
+ test({ assert, target, logs }) {
+ assert.deepEqual(normalise_trace_logs(logs), [
+ { log: 'effect' },
+ { log: '$state', highlighted: true },
+ { log: 'Counter.#count', highlighted: false },
+ { log: 0 }
+ ]);
+
+ logs.length = 0;
+
+ const button = target.querySelector('button');
+ button?.click();
+ flushSync();
+
+ assert.deepEqual(normalise_trace_logs(logs), [
+ { log: 'effect' },
+ { log: '$state', highlighted: true },
+ { log: 'Counter.#count', highlighted: false },
+ { log: 1 }
+ ]);
+ }
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/main.svelte b/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/main.svelte
new file mode 100644
index 000000000000..56bd497e0955
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/inspect-trace-class/main.svelte
@@ -0,0 +1,28 @@
+
+
+