anchor.diff:        (when (null id)
           ;; ERROR: something wrong...
           (return-from exit))
  -      (setf (vf-current vf) (search-previous-frame vf id))
  +      (let ((%frame (search-previous-frame vf id)))
  +        (when %frame
  +          (setf (vf-current vf) %frame)
  +          (lem::map-frame (implementation) (%frame-frame %frame))))
         (setf (vf-changed vf) t))))
   
   (define-key *global-keymap* "C-z n" 'fm-next)
  
positive.code:         ;; ERROR: it's full of frames in virtual frame
          (return-from exit))
        (let* ((frame (lem::make-frame))
               (%frame (%make-frame id frame)))
          (setf (aref (vf-frames vf) id) %frame
                (vf-current vf) %frame))
        (setf (vf-changed vf) t))))
  
  (define-key *global-keymap* "c-z d" 'fm-delete)
  
negative.code:   (loop
      :for impl :in (list (implementation))  ; for multi-frame support in the future...
      :do (let ((vf (make-vf impl (lem::get-frame impl))))
            (setf (gethash impl *vf-map*) vf)
            (lem::map-frame (implementation) (%frame-frame (vf-current vf))))))
  
  (defun frame-multiplexer-on ()
    (unless (variable-value 'frame-multiplexer :global)
  