Hi, The clone method of eieio-instance-inheritor sets the slots of the new objects. For example: (defclass A (eieio-instance-inheritor) ((foo :initarg :foo :initform "something"))) (defvar a (A)) (defvar b (clone a)) (slot-boundp b :foo) ; => t This is in contrast to the doc which says "All slots are unbound, except those initialized with PARAMS". The original eieio implementation initialized the objects with unbound values like this: ╭──────── #68 ─ emacs-source/lisp/emacs-lisp/eieio-base.el ── │ (let ((nobj (make-vector (length obj) eieio-unbound)) ╰──────── #68 ─ The current implementation dispatches to cl-call-next-method. I am attaching a patch which preserves the call to cl-call-next-method. Vitalie