(whitespace-turn-on-if-enabled) gets called multiple times by hooks when a file is opened. The value of font-lock-keywords is changed by the first call, and subsequent calls record that value into whitespace-font-lock-keywords. When GWM is disabled, the value restored to font-lock-keywords still includes highlighting for white space characters. How's this change? *** whitespace.el.orig Thu May 16 15:22:05 2013 --- whitespace.el Thu May 16 15:22:59 2013 *************** resultant list will be returned." *** 2176,2183 **** (add-hook 'write-file-functions 'whitespace-write-file-hook nil t) ;; create whitespace local buffer environment (set (make-local-variable 'whitespace-font-lock-mode) nil) ! (set (make-local-variable 'whitespace-font-lock) nil) ! (set (make-local-variable 'whitespace-font-lock-keywords) nil) (set (make-local-variable 'whitespace-display-table) nil) (set (make-local-variable 'whitespace-display-table-was-local) nil) (set (make-local-variable 'whitespace-active-style) --- 2176,2184 ---- (add-hook 'write-file-functions 'whitespace-write-file-hook nil t) ;; create whitespace local buffer environment (set (make-local-variable 'whitespace-font-lock-mode) nil) ! (unless whitespace-font-lock ! (set (make-local-variable 'whitespace-font-lock) nil) ! (set (make-local-variable 'whitespace-font-lock-keywords) nil)) (set (make-local-variable 'whitespace-display-table) nil) (set (make-local-variable 'whitespace-display-table-was-local) nil) (set (make-local-variable 'whitespace-active-style) Regards, Jeremy Moore