Ok, here is my attempt to code this: https://github.com/Bad-ptr/emacs/commit/cf6b0d9f08dbdc5dd685dbc6a5ef9ff18575e2b2 This seem to work for my example from the start of discussion(not tested it much for now). > you didn't describe the use case where this issue got in your way, so perhaps you should. If you set a 'heay' buffer-predicate like here https://github.com/Bad-ptr/persp-mode.el/blob/master/persp-mode.el#L2793 (This package provide a way to switch between 'projects', each project has a list of buffers, it is essential to set a buffer-predicate that will constrain buffer switching to the current 'project' so it needs to check if a buffer is a member of the current project list. There may be many buffers from many projects) And if you are the user of a package that overuse the with-temp-buffer(like helm or if you run down the list of candidates of the company-mode) you can notice a slowdown. https://github.com/Bad-ptr/persp-mode.el/issues/35 And I just think that this behavior of the kill-buffer is wrong and could be fixed quite easily and without introducing new functions or breaking user experience. Maybe I'm wrong. And I'm not saying that this is a critical bug or somehow urgent, just wanted to discuss the idea.