shell-modeにキーワードを作りたい

と思って適当にやってみたけど、何故か色が付かない。

(defvar *shell4-keyword-hash-table* nil)
(defvar *shell4-keyword-file* "shell4")

(defun shell4-keyword()
  (interactive)
  (and *shell4-keyword-file*
	   (null *shell4-keyword-hash-table*)
	   (setq *shell4-keyword-hash-table*
			 (load-keyword-file *shell4-keyword-file* t)))
  (when *shell4-keyword-hash-table*
	(make-local-variable 'keyword-hash-table)
	(setq keyword-hash-table *shell4-keyword-hash-table*))
  )

(add-hook '*shell-mode-hook* 'shell4-keyword)

調べてみると、実際には、キーワードには設定されているようなので、色だけが付いていない様子。キーワードファイルに色の指定をしていないからだろうか。それともshell-modeの場合はcmdのoutputを引き受けると何かバッファの状態が変更されるとか、よくわからない。