diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh
index 7b71ec7..2373ccd 100644
--- a/highlighters/main/main-highlighter.zsh
+++ b/highlighters/main/main-highlighter.zsh
@@ -842,7 +842,7 @@ _zsh_highlight_main_highlighter_check_path()
 # This command will at least highlight start_pos to end_pos with the default style
 _zsh_highlight_main_highlighter_highlight_argument()
 {
-  local base_style=default i path_eligible=1 start style
+  local base_style=default i=1 path_eligible=1 start style
   local -a highlights
 
   local -a match mbegin mend
@@ -857,9 +857,16 @@ _zsh_highlight_main_highlighter_highlight_argument()
       fi
       path_eligible=0
       ;;
+    '=')
+      if [[ $arg[2] == $'\x28' ]]; then
+        (( i += 2 ))
+        _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos]
+        (( i += REPLY ))
+        highlights+=($start_pos $(( start_pos + i )) process-substitution $reply)
+      fi
   esac
 
-  for (( i = 1 ; i <= end_pos - start_pos ; i += 1 )); do
+  for (( ; i <= end_pos - start_pos ; i += 1 )); do
     case "$arg[$i]" in
       "\\") (( i += 1 )); continue;;
       "'")
diff --git a/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh b/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh
index 05c11b8..d5de3fd 100644
--- a/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh
+++ b/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh
@@ -33,4 +33,7 @@ BUFFER=$': =(<foo)'
 expected_region_highlight=(
   '1 1 builtin' # :
   '3 9 default' # =(<foo)
+  '3 9 process-substitution' # =(<foo)
+  '5 5 redirection' # <foo
+  '6 8 default' # foo
 )