 		more-atts (cddr more-atts))
 	  ;; Color-theme assumes that no value is ever 'unspecified.
 	  (cond ((eq att ':height); cumulative effect!
-		 (setq atts (plist-put atts 
-				       ':height 
+		 (setq atts (plist-put atts
+				       ':height
 				       (color-theme-spec-resolve-height
-					(plist-get atts att) 
+					(plist-get atts att)
 					val))))
 		;; Default: Only put if it has not been specified before.
 		((not (plist-get atts att))
 		 (setq atts (cons att (cons val atts))))
-		  
-))))
+
+)))
+      (pop color-theme-spec-resolve-inheritance-stack)))
+      )
     atts))
+
 ;; (color-theme-spec-resolve-inheritance '(:bold t))
 ;; (color-theme-spec-resolve-inheritance '(:bold t :foreground "blue"))
 ;; (color-theme-face-attr-construct 'font-lock-comment-face (selected-frame))

;; Use this to define themes
(defmacro define-color-theme (name author description &rest forms)
  (let ((n name))
    `(progn 
       (add-to-list 'color-themes
                    (list ',n
                          (upcase-initials
                           (replace-in-string
                            (replace-in-string 
                             (symbol-name ',n) "^color-theme-" "") "-" " "))
                          ,author))
       (defun ,n ()

  (color-theme-initialize)
)
;; TODO: I don't like all those function names cluttering up my namespace.
;; Instead, a hashtable for the color-themes should be created. Now that
;; define-color-theme is around, it should be easy to change in just the
;; one place.


(provide 'color-theme)
