diff -r 9468b094ae2b Lib/idlelib/ReplaceDialog.py --- a/Lib/idlelib/ReplaceDialog.py Fri Oct 14 10:30:24 2011 -0500 +++ b/Lib/idlelib/ReplaceDialog.py Fri Oct 14 14:33:11 2011 -0500 @@ -58,11 +58,14 @@ self.do_replace() self.do_find(0) + def avoid_bogus_escape(self, chars): + return SearchEngine.re.escape(chars) + def replace_all(self, event=None): prog = self.engine.getprog() if not prog: return - repl = self.replvar.get() + repl = self.avoid_bogus_escape(self.replvar.get()) text = self.text res = self.engine.search_text(text, prog) if not res: @@ -138,7 +141,7 @@ m = prog.match(chars, col) if not prog: return False - new = m.expand(self.replvar.get()) + new = m.expand(self.avoid_bogus_escape(self.replvar.get())) text.mark_set("insert", first) text.undo_block_start() if m.group():