diff -r c08e92529f62 Lib/idlelib/AutoComplete.py --- a/Lib/idlelib/AutoComplete.py Sun Sep 08 20:42:13 2013 +0300 +++ b/Lib/idlelib/AutoComplete.py Mon Sep 09 21:39:31 2013 +0300 @@ -160,12 +160,12 @@ if not comp_lists[0]: return self.autocompletewindow = self._make_autocomplete_window() - self.autocompletewindow.show_window(comp_lists, + return not self.autocompletewindow.show_window( + comp_lists, "insert-%dc" % len(comp_start), complete, mode, userWantsWin) - return True def fetch_completions(self, what, mode): """Return a pair of lists of completions for something. The first list diff -r c08e92529f62 Lib/idlelib/AutoCompleteWindow.py --- a/Lib/idlelib/AutoCompleteWindow.py Sun Sep 08 20:42:13 2013 +0300 +++ b/Lib/idlelib/AutoCompleteWindow.py Mon Sep 09 21:39:31 2013 +0300 @@ -157,13 +157,14 @@ self.start = self.widget.get(self.startindex, "insert") if complete: completed = self._complete_string(self.start) + start = self.start self._change_start(completed) i = self._binary_search(completed) if self.completions[i] == completed and \ (i == len(self.completions)-1 or self.completions[i+1][:len(completed)] != completed): # There is exactly one matching completion - return + return completed == start self.userwantswindow = userWantsWin self.lasttypedstart = self.start