I need to add a couple of updates to this bug report. First, I have duplicated this bug, using both "emacs -nw -Q" and in commenting out my init.el file completely, essentially by doing the same thing. Second, (and I consider this to be a very important datapoint, that I forgot to report, to my everlasting shame), I am using Emacs under screen. Indeed, if I run "emacs -nw -Q ~/aoeu.py" without screen, my very brief tests don't run into a problem, but if I start a new screen instance, and open "emacs -nw -Q ~/aoeu.py", I can type def hello(world): and I get def hello(w:rld) so whether the problem is with Emacs/screen interaction, or is strictly a problem with screen, I do not know. (For what it's worth, I've most recently been typing def hello(world): [TAB]testing = {"presidents" : [TAB]{ "jefferson" : "thomas", [TAB]"madison" : "james"}} [TAB]vesting = {"confederates" : [TAB]{"davis" : "jefferson"}} in an attempt to test tabbing; the cursor can jump at any time through the process, although I haven't been keeping track of when that happens. This is really just a "stream-of-consciousness" tab test.)