Here's one I wrote a while ago using the fairly standard technique of having some data that looks pretty much like the code that uses the data to reconstruct the data and the code. ;;; Self-reproducing function (defun v () (let ((m '(subst m '** '(defun v () (let ((m '**)) **))))) (subst m '** '(defun v () (let ((m '**)) **))))) -- Jeff