This is the list of common problems. Emacs 20.7: Some faces are created using copy-face; these faces are not printed correctly using M-x color-theme-print. They will have (nil) in their spec. M-x customize-face has the same problem. Example: (copy-face 'bold 'new-bold) (color-theme-spec 'bold) => (bold ((t (:bold t)))) (color-theme-spec 'new-bold) => (new-bold ((t (nil)))) XEmacs 21.1: Some faces are defined using a certain font instead of of the correct attribute. They will have (nil) in their spec. M-x customize-face has the same problem. Example: (color-theme-spec 'bold) => (bold ((t (nil)))) XEmacs 21.2 and up, Emacs 21: Not compatible with the custom-theme mode. It should be easy to transform the color-theme source into custom-theme source, however. If you are running XEmacs, then only foreground and background color of the default face and only the background color of the text-cursor face will used. This is due to the fact that these three pieces of information are stored as frame parameters in Emacs. If you are running XEmacs, variables cannot have a frame-local binding. Therefore, if color-theme-is-global is set to nil, the variable settings in a color theme are ignored. Using Emacs and a non-nil value for color-theme-is-global will install a new color theme for all frames. Using XEmacs and a non-nil value for color-theme-is-global will install a new color theme only on those frames that are not using a local color theme. If your system does not define the color names used, you will get the error "undefined color". See the output of `list-colors-display' for a list of colors defined on your display. The :box, :height, and other new attributes will be honored in Emacs 21, but when you print such a color-theme on Emacs 20 or XEmacs 21, the information will get lost. So don't do that. Furthermore, customizing these faces may end up showing you a lisp expression instead of the real widgets on Emacs 20 or XEmacs 21 because these attributes are not understood. :inverse-video handling differs in Emacs and XEmacs. We therefore do away with it. When printing a color-theme, the inverse-video attribute should be handled correctly without ever appearing in color themes. For maintenance, the following might be usefull for query-replace-regexp. :background "\([^"]*\)"\(.*\):foreground "\([^"]*\)"\(.*\) :inverse-video t :background "\3"\2:foreground "\1"\4 In XEmacs 21.1, some of the face tests don't work. Example: (custom-face-bold 'bold) returns nil on my system. A bug report was submitted. Emacs 20 users will loose with new color themes, because these will set the colors of the default face only, leaving frame background untouched. In Emacs 20, the colors of the default face and of the frame could be changed independently. In Emacs 21, this is no longer true. New color themes will not be made backwards compatible. This release was superficially tested with Emacs 21.x/22.x and XEmacs 21.4.