Hello.
The current implementation of SET-KEYMAP-PARENTS for GNU Emacs is problematic (e.g., cc-mode will error): a keymap is represented as a list with the first element being the symbol KEYMAP. The function as currently implemented will treat a keymap as any other list. Here's a quick fix:
(or (fboundp 'set-keymap-parents) (defun set-keymap-parents (m parents) (set-keymap-parent m (cond ((or (keymapp parents) (not (consp parents))) parents) ; note keymapp ((not (cdr parents)) (car parents)) (t (let ((m (copy-keymap (pop parents)))) (set-keymap-parents m parents) m))))))