I would like to make `set-window-dedicated-p` a NOP when called from `xref--show-pos-in-buf`. Below is an attempt to do so using advice. It doesn't work, I think because `fset` is not really copying the original function definition, just pointing things at each other. How can I either fix this approach to make it work, or use an alternative approach to accomplish my overall goal? Overall goal: The way I have things set up, when I run an xref command like `xref-find-references`, buffer `*xref*` is shown in a full window which is how I like. But, when I hit `RET` to visit a reference, the location opens in a new frame. From what I can tell, this is because `xref--show-pos-in-buf` dedicates `*xref*` which seems to cause `display-buffer` to think the best solution is to display the buffer in a new frame. I *never* want a new frame, so my overall goal here is that `*xref*` and anything I select in it always open in the same frame I am already using. (defun sham-set-window-dedicated-p (win flag) "Don't dedicate WIN, only return FLAG." flag) (fset 'original-set-window-dedicated-p (symbol-function 'set-window-dedicated-p)) (defadvice xref--show-pos-in-buf (around my-xref--show-pos-in-buf activate) "Monkey patch set-window-dedicated-p so it doesn't do anything." (fset 'set-window-dedicated-p sham-set-window-dedicated-p)) ad-do-it (fset set-window-dedicated-p (symbol-function 'original-set-window-dedicated-p)))