diff --git a/plugins/zsh-navigation-tools/README.md b/plugins/zsh-navigation-tools/README.md
index 686213c36..670a85ece 100644
--- a/plugins/zsh-navigation-tools/README.md
+++ b/plugins/zsh-navigation-tools/README.md
@@ -105,7 +105,8 @@ colorize output of the tools, via their config files (check out e.g. n-cd.conf,
 it uses this).
 
 ## Performance
-ZNT is fastest with Zsh before 5.0.8 and starting from 5.2 (the version yet to
+ZNT are fastest with Zsh before 5.0.8 and starting from 5.2 (the version yet to
 be released).
 
-# vim:filetype=conf
+
+vim:filetype=conf
diff --git a/plugins/zsh-navigation-tools/n-list b/plugins/zsh-navigation-tools/n-list
index c7066318e..26431a0d9 100644
--- a/plugins/zsh-navigation-tools/n-list
+++ b/plugins/zsh-navigation-tools/n-list
@@ -261,18 +261,15 @@ while (( 1 )); do
             local search_buffer="${NLIST_SEARCH_BUFFER%% ##}"
             search_buffer="${search_buffer## ##}"
             search_buffer="${search_buffer//(#m)[][*?|#~^()><\\]/\\$MATCH}"
+            local search_pattern=""
+            local colsearch_pattern=""
             if [ -n "$search_buffer" ]; then
                 # Patterns will be *foo*~^*bar* and foo|bar)
-                local search_pattern="${search_buffer// ##/*~^*}"
-                local colsearch_pattern="${search_buffer// ##/|}"
+                search_pattern="${search_buffer// ##/*~^*}"
+                colsearch_pattern="${search_buffer// ##/|}"
 
                 list=( "${(@M)list:#(#i)*$~search_pattern*}" )
                 last_element="$#list"
-
-                local red=$'\x1b[00;31m' reset=$'\x1b[00;00m'
-                col_list=( "${(@)list//(#mi)($~colsearch_pattern)/$red${MATCH}$reset}" )
-            else
-                col_list=( "$list[@]" )
             fi
 
             # Called after processing list
@@ -286,7 +283,12 @@ while (( 1 )); do
 
         if [ "$prev_start_idx" -ne "$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN" ]; then
             prev_start_idx="$NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN"
-            disp_list=( "${(@)col_list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" )
+            disp_list=( "${(@)list[NLIST_FROM_WHAT_IDX_LIST_IS_SHOWN, end_idx]}" )
+
+            if [ -n "$colsearch_pattern" ]; then
+                local red=$'\x1b[00;31m' reset=$'\x1b[00;00m'
+                disp_list=( "${(@)disp_list//(#mi)($~colsearch_pattern)/$red${MATCH}$reset}" )
+            fi
 
             # We have display list, lets replace newlines with "\n" when needed (1/3)
             [ "$NLIST_REPLACE_NEWLINES" -eq 1 ] && disp_list=( "${(@)disp_list//$'\n'/\\n}" )