diff --git a/zsh-syntax-highlighting.zsh b/zsh-syntax-highlighting.zsh
index f1dbfcf..c56749d 100644
--- a/zsh-syntax-highlighting.zsh
+++ b/zsh-syntax-highlighting.zsh
@@ -24,7 +24,7 @@ ZLE_GLOBING='fg=blue,bold'
 
 ZLE_DEFAULT='fg=white,bold'
 
-ZLE_TOKENS_FOLLOWED_BY_COMMANDS=('|' '||' ';' '&' '&&' 'sudo' 'start' 'time' 'strace')
+ZLE_TOKENS_FOLLOWED_BY_COMMANDS=('|' '||' ';' '&' '&&' 'sudo' 'start' 'time' 'strace' 'noglob' 'command' 'builtin')
 
 _check_path() {
 	[[ -z $arg ]] && return 1
@@ -64,17 +64,20 @@ colorize-zle-buffer() {
     ((end_pos=$start_pos+${#arg}))
     if $colorize; then
       colorize=false
-      res=$(LC_ALL=C builtin type $arg 2>/dev/null)
+      res=$(LC_ALL=C builtin type -w $arg 2>/dev/null)
       case $res in
-        *'reserved word'*)  style=$ZLE_RESERVED_WORD_STYLE;;
-        *'an alias'*)       style=$ZLE_ALIAS_STYLE;;
-        *'shell builtin'*)  style=$ZLE_BUILTIN_STYLE;;
-        *'shell function'*) style=$ZLE_FUNCTION_STYLE;;
-        *"${cmd:-no-command-specified} is"*) style=$ZLE_COMMAND_STYLE;;
-        *)
-	style=$ZLE_COMMAND_UNKNOWN_TOKEN_STYLE
-	_check_path && style=$ZLE_PATH_STYLE
-	;;
+	*': reserved')  style=$ZLE_RESERVED_WORD_STYLE;;
+	*': alias')     style=$ZLE_ALIAS_STYLE;;
+	*': builtin')   style=$ZLE_BUILTIN_STYLE;;
+	*': function')  style=$ZLE_FUNCTION_STYLE;;
+	*': command')   style=$ZLE_COMMAND_STYLE;;
+	*)
+	  if _check_path; then
+	    style=$ZLE_PATH_STYLE
+	  else
+	    style=$ZLE_COMMAND_UNKNOWN_TOKEN_STYLE
+	  fi
+	  ;;
       esac
     else
 	case $arg in