+2004-12-21  Teodor Zlatanov  <tzz@lifelogs.com>
+
+       * spam.el (spam-check-BBDB): fix the BBDB caching code to use
+       downcased symbol names; make a new cache instead of reusing
+       bbdb-hashtable
+
 2004-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * rfc2231.el (rfc2231-parse-string): Decode encoded value after
 
        (when spam-cache-lookups
          (setq bbdb-cache (gethash 'spam-use-BBDB spam-caches))
          (unless bbdb-cache
-           (setq bbdb-cache
-                 ;; this is the expanded (bbdb-hashtable) macro
-                 ;; without the debugging support
-                 (with-current-buffer (bbdb-buffer)
-                   (save-excursion
-                     (save-window-excursion
-                       (bbdb-records nil t)
-                       bbdb-hashtable))))
+           (setq bbdb-cache (make-vector 17 0)) ; a good starting hash value
+           ;; this is based on the expanded (bbdb-hashtable) macro
+           ;; without the debugging support
+           (with-current-buffer (bbdb-buffer)
+             (save-excursion
+               (save-window-excursion
+                 (bbdb-records nil t)
+                 (mapatoms 
+                  (lambda (symbol)
+                    (intern (downcase (symbol-name symbol)) bbdb-cache))
+                  bbdb-hashtable))))
            (puthash 'spam-use-BBDB bbdb-cache spam-caches)))
        (when who
          (setq who (nth 1 (gnus-extract-address-components who)))
          (if
              (if spam-cache-lookups
                  (symbol-value
-                  (intern-soft who bbdb-cache))
+                  (intern-soft (downcase who) bbdb-cache))
                (bbdb-search-simple nil who))
              t
            (if spam-use-BBDB-exclusive