use buffer-list-update-hook instead of post-command-hook for detecting if the buffer list has changed... may not work in emacs 23.  Also, needs elisp cleanup