Tags: patch Hi Fabian, I've fixed this bug. It was harder than I'd initially thought as several issues converged to screw ipython completion up: 1) The native completion setup code was importing rlcompleter. Just importing this overrides the current readline completer (the import calls set_completer to set the standard python completer, which is not quite the same as the completer ipython had previously set up). 2) The fallback completion setup code was also importing rlcompleter unconditionally, thus replacing the ipython completer too. 3) The _callable_postfix + triple-tab workaround was not available for the ipython completer AFAICS, because it has no _callable_postfix method. I opted for another (IMO a bit cleaner) workaround, see below. So, here is what I've done to fix the issues above: 3') I'm wrapping the current complete function (as returned by readline.get_completer) so that the wrapper never returns just one completion. In case the original completer returned one completion, a '__dummy_completion__' is added to the completion list by the wrapper. This avoids the need to define a _callable_postifx (unavailable in ipython) and also avoids the need for the triple-tab hack and duplicate filtering (obviously, you still have to filter '__dummy_completion__'). All in all I think the approach is more robust although still a bit hackish. IMO, it should be documented better in the code, I spent quite a time figuring out WTF the triple tabs and _callable_postfix were supposed to do! :) 1') Because of 3', there is no need to import rlcompleter in the native completion setup code anymore. 2') I've done some refactoring of the fallback completion setup code in order to import rlcompleter only in case the current shell is not ipython. In general, I think this setup code is a bit more clear now, but you're the one to judge that. I'm attaching a patch against my version of python.el which is a little outdated and has some patches of mine applied on top. But I think you won't have any problems figuring out the needed changes as they closely track the description above. Cheers -- Carlos