diff --git a/.changeset/wicked-apes-sin.md b/.changeset/wicked-apes-sin.md
new file mode 100644
index 0000000000..f40294ddff
--- /dev/null
+++ b/.changeset/wicked-apes-sin.md
@@ -0,0 +1,5 @@
+---
+'svelte': patch
+---
+
+fix: hydrate `href` that is part of spread attributes
diff --git a/packages/svelte/src/internal/client/dom/elements/attributes.js b/packages/svelte/src/internal/client/dom/elements/attributes.js
index 308f23d340..4a0f0cea0e 100644
--- a/packages/svelte/src/internal/client/dom/elements/attributes.js
+++ b/packages/svelte/src/internal/client/dom/elements/attributes.js
@@ -419,11 +419,7 @@ export function set_attributes(
// @ts-ignore
element[name] = value;
} else if (typeof value !== 'function') {
- if (hydrating && (name === 'src' || name === 'href' || name === 'srcset')) {
- if (!skip_warning) check_src_in_dev_hydration(element, name, value ?? '');
- } else {
- set_attribute(element, name, value);
- }
+ set_attribute(element, name, value);
}
}
if (key === 'style' && '__styles' in element) {
diff --git a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html
index 2f5b652fac..e1076af2ec 100644
--- a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html
+++ b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/_expected.html
@@ -1 +1 @@
-foo
+foo foo
diff --git a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte
index be01d05f8e..3f0c988016 100644
--- a/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte
+++ b/packages/svelte/tests/hydration/samples/repair-mismatched-a-href/main.svelte
@@ -3,3 +3,4 @@
foo
+foo