diff --git a/src/observers/link_prefetch_observer.js b/src/observers/link_prefetch_observer.js
index 5f5f66d43..e4dfe864a 100644
--- a/src/observers/link_prefetch_observer.js
+++ b/src/observers/link_prefetch_observer.js
@@ -113,7 +113,11 @@ export class LinkPrefetchObserver {
request.headers["X-Sec-Purpose"] = "prefetch"
const turboFrame = link.closest("turbo-frame")
- const turboFrameTarget = link.getAttribute("data-turbo-frame") || turboFrame?.getAttribute("target") || turboFrame?.id
+ let turboFrameTarget = link.getAttribute("data-turbo-frame") || turboFrame?.getAttribute("target") || turboFrame?.id
+
+ if (turboFrameTarget === "_self") {
+ turboFrameTarget = turboFrame?.id
+ }
if (turboFrameTarget && turboFrameTarget !== "_top") {
request.headers["Turbo-Frame"] = turboFrameTarget
diff --git a/src/tests/fixtures/hover_to_prefetch.html b/src/tests/fixtures/hover_to_prefetch.html
index bd0f6f944..4ba7017ba 100644
--- a/src/tests/fixtures/hover_to_prefetch.html
+++ b/src/tests/fixtures/hover_to_prefetch.html
@@ -56,5 +56,10 @@
Hover to prefetch me
+
+ Hover to prefetch me
+
+ Hover to prefetch me
+