This patch corrects the problem by partially backing out changes introduced in this commit 2 1/2 years ago: https://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/progmodes/tcl.el?id=cd5bb4bf3dbad8941d25823f398b595b8f0edbb9 The patch removes the customized tcl-beginning-of-defun-function in favor of relying on the existing lisp mechanism. It preserves the customized tcl-end-of-defun-function because that is required for some test cases. The expected-failing test was marked as succeeding. This is a minor change. I did not refer to any code outside of emacs itself in investigating and correcting this bug. I will not be able to provide additional paperwork.