Hi, I'm slowly working my way towards running Emacs 24 on a regular basis. I've updated a few packages, things seem to work mostly. The only real obstacle was that CEDET had to be built from the trunk in order to work. But not with Gnus. Does this look familiar to anyone? I don't believe there was any Emacs 23 byte compiled code on the code path... Debugger entered--Lisp error: (void-function eieio--defgeneric-init-form) eieio--defgeneric-init-form(initialize-instance "Set value of data slot of THIS after initialization.") byte-code("\300\301\302\217\204\300\303\304\217\204\305\306!\210\307\310\311\312\300$\210\313\314\315\314\316\"\"\210\317\314\320\310\321$\210\313\322\315\322\323\"\"\210\317\322\300\310\324$\210\313\325\315\325\323\"\"\210\317\325\300\310\326$\210\313\327\315\327\330\"\"\210\317\327\300\310\331$\210\313\332\315\332\333\"\"\210\317\332\300\310\334$\207" [nil (byte-code "\300\301!\210\300\302!\207" [require eieio eieio-base] 2) ((error)) (byte-code "\301\302\303\304\305!!\"B\306\307!\210\306\310!)\207" [load-path expand-file-name "gnus-fallback-lib/eieio" file-name-directory locate-library "gnus" require eieio eieio-base] 5) ((error)) error "eieio not found in `load-path' or gnus-fallback-lib/ directory." eieio-defclass registry-db (eieio-persistent) ((version :initarg :version :initform 0.1 :type float :custom float :documentation "The registry version.") (max-hard :initarg :max-hard :initform 5000000 :type integer :custom integer :documentation "Never accept more than this many elements.") (max-soft :initarg :max-soft :initform 50000 :type integer :custom integer :documentation "Prune as much as possible to get to this size.") (prune-factor :initarg :prune-factor :initform 0.1 :type float :custom float :documentation "At the max-hard limit, prune size * this entries.") (tracked :initarg :tracked :initform nil :type t :documentation "The tracked (indexed) fields, a list of symbols.") (precious :initarg :precious :initform nil :type t :documentation "The precious fields, a list of symbols.") (tracker :initarg :tracker :type hash-table :documentation "The field tracking hashtable.") (data :initarg :data :type hash-table :documentation "The data hashtable.")) eieio--defalias initialize-instance eieio--defgeneric-init-form "Set value of data slot of THIS after initialization." eieio--defmethod :AFTER #[(this slots) "\302\235\204\303 \304\305\306\307\310\311\312\313&#\210\314\235?\205%\303 \315\305\306\316\310\317$#\207" [slots this :data eieio-oset data make-hash-table :size 10000 :rehash-size 2.0 :test equal :tracker tracker 100 2.0] 10 "Set value of data slot of THIS after initialization."] registry-lookup "Search for KEYS in the registry-db THIS.\nReturns an alist of the key followed by the entry in a list, not a cons cell." #[(db keys) "\303\304\"\305\306\307\310\n\"\")\207" [db data keys eieio-oref :data delq nil mapcar #[(k) "\302 \"\205 \302 \"D\207" [k data gethash] 4]] 5 "Search for KEYS in the registry-db THIS.\nReturns an alist of the key followed by the entry in a list, not a cons cell."] registry-lookup-breaks-before-lexbind #[(db keys) "\306\307\"\310\311\n\311\211 :\203, @\312\f \"\203%\f\312\f \"D B A\211\202 \237+\")\207" [db data keys --cl-var-- key --cl-var-- eieio-oref :data delq nil gethash] 7 "Search for KEYS in the registry-db THIS.\nReturns an alist of the key followed by the entry in a list, not a cons cell."] registry-lookup-secondary "Search for TRACKSYM in the registry-db THIS.\nWhen CREATE is not nil, create the secondary index hashtable if needed." #[(db tracksym &optional create) "\304\305 \306\"\"\211\203\n\202, \205,\307\310\311\312\313\314\315\316&\305 \306\"#\210\304\305 \306\"\")\207" [tracksym db h create gethash eieio-oref :tracker puthash make-hash-table :size 800 :rehash-size 2.0 :test equal] 10 "Search for TRACKSYM in the registry-db THIS.\nWhen CREATE is not nil, create the secondary index hashtable if needed."] registry-lookup-secondary-value "Search for TRACKSYM with value VAL in the registry-db THIS.\nWhen SET is not nil, set it for VAL (use t for an empty list)." #[(db tracksym val &optional set) "\204 \304 \n\"\205'\203 \305 \306=?\205\304 \n\306##\210\307 \304 \n\"\"\207" [set db tracksym val registry-lookup-secondary puthash t gethash] 7 "Search for TRACKSYM with value VAL in the registry-db THIS.\nWhen SET is not nil, set it for VAL (use t for an empty list)."]] 5) require(registry) byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [require gnus gnus-int gnus-sum gnus-art gnus-util nnmail easymenu registry] 2) require(gnus-registry) eval-buffer(# nil "/Users/ndw/.gnus" nil t) ; Reading at buffer position 611 load-with-code-conversion("/Users/ndw/.gnus" "/Users/ndw/.gnus" nil t) load("~/.gnus" nil t) gnus-read-init-file() gnus-1(nil nil nil) gnus(nil) call-interactively(gnus nil nil) command-execute(gnus) command-line-1(("-f" "gnus")) command-line() normal-top-level() Be seeing you, norm -- Norman Walsh | By reading this, you have given me http://nwalsh.com/ | brief control of your mind.