tested on emacs 22