diff --git a/.changeset/gentle-bulldogs-cough.md b/.changeset/gentle-bulldogs-cough.md
new file mode 100644
index 000000000000..3f6f86225915
--- /dev/null
+++ b/.changeset/gentle-bulldogs-cough.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: ensure SVG element attributes have case preserved
diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SvelteElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SvelteElement.js
index d95f03d1d47c..ba66fe29d691 100644
--- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/SvelteElement.js
+++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/SvelteElement.js
@@ -101,7 +101,7 @@ export function SvelteElement(node, context) {
node,
element_id,
attributes_id,
- b.binary('!==', b.member(element_id, 'namespaceURI'), b.id('$.NAMESPACE_SVG')),
+ b.binary('===', b.member(element_id, 'namespaceURI'), b.id('$.NAMESPACE_SVG')),
b.call(b.member(b.member(element_id, 'nodeName'), 'includes'), b.literal('-')),
context.state
);
diff --git a/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/_config.js b/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/_config.js
new file mode 100644
index 000000000000..a863250c74bc
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/_config.js
@@ -0,0 +1,5 @@
+import { test } from '../../test';
+
+export default test({
+ html: ``
+});
diff --git a/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/main.svelte b/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/main.svelte
new file mode 100644
index 000000000000..58324633123e
--- /dev/null
+++ b/packages/svelte/tests/runtime-runes/samples/svg-attribute-case/main.svelte
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file