diff --git a/runtime/indent/make.vim b/runtime/indent/make.vim
index 4d1838b..aeea4de 100644
--- a/runtime/indent/make.vim
+++ b/runtime/indent/make.vim
@@ -3,6 +3,7 @@
 " Maintainer:		Doug Kearns <dougkearns@gmail.com>
 " Previous Maintainer:	Nikolai Weibull <now@bitwi.se>
 " Last Change:		2022 Apr 06
+" 2025 Apr 22 by Vim Project: do not indent after special targets #17183
 
 if exists("b:did_indent")
   finish
@@ -21,6 +22,8 @@
 
 let s:comment_rx = '^\s*#'
 let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
+" .PHONY, .DELETE_ON_ERROR, etc
+let s:rule_special = '^\.[A-Z_]\+\s*:'
 let s:continued_rule_rx = '^[^#:]*:\{1,2}\%([^=:]\|$\)'
 let s:continuation_rx = '\\$'
 let s:assignment_rx = '^\s*\h\w*\s*[+:?]\==\s*\zs.*\\$'
@@ -50,7 +53,7 @@
   if prev_line =~ s:continuation_rx
     if prev_prev_line =~ s:continuation_rx
       return indent(prev_lnum)
-    elseif prev_line =~ s:rule_rx
+    elseif prev_line =~ s:rule_rx && prev_line !~ s:rule_special
       return shiftwidth()
     elseif prev_line =~ s:assignment_rx
       call cursor(prev_lnum, 1)
@@ -81,15 +84,15 @@
       let line = getline(lnum)
     endwhile
     let folded_lnum = lnum + 1
-    if folded_line =~ s:rule_rx
-      if getline(v:lnum) =~ s:rule_rx
+    if folded_line =~ s:rule_rx && prev_line !~ s:rule_special
+      if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
         return 0
       else
         return &ts
       endif
     else
 "    elseif folded_line =~ s:folded_assignment_rx
-      if getline(v:lnum) =~ s:rule_rx
+      if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
         return 0
       else
         return indent(folded_lnum)
@@ -98,8 +101,8 @@
 "      " TODO: ?
 "      return indent(prev_lnum)
     endif
-  elseif prev_line =~ s:rule_rx
-    if getline(v:lnum) =~ s:rule_rx
+  elseif prev_line =~ s:rule_rx && prev_line !~ s:rule_special
+    if getline(v:lnum) =~ s:rule_rx && prev_line !~ s:rule_special
       return 0
     else
       return &ts
