diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py
index e29d4d6..83462f9 100644
--- a/Lib/idlelib/ReplaceDialog.py
+++ b/Lib/idlelib/ReplaceDialog.py
@@ -90,7 +90,7 @@
             line, m = res
             chars = text.get("%d.0" % line, "%d.0" % (line+1))
             orig = m.group()
-            new = re.pcre_expand(m, repl)
+            new = self._expand(m, repl)
             i, j = m.span()
             first = "%d.%d" % (line, i)
             last = "%d.%d" % (line, j)
@@ -142,7 +142,7 @@
         m = prog.match(chars, col)
         if not prog:
             return 0
-        new = re.pcre_expand(m, self.replvar.get())
+        new = self._expand(m, self.replvar.get())
         text.mark_set("insert", first)
         text.undo_block_start()
         if m.group():
@@ -154,6 +154,22 @@
         self.ok = 0
         return 1
 
+    def _expand(self, m, template):
+        # XXX This code depends on internals of the regular expression
+        # engine!  There's no standard API to do a substitution when you
+        # have already found the match.  One should be added.
+        # The solution here is designed to be backwards compatible
+        # with previous Python versions, e.g. 1.5.2.
+        # XXX This dynamic test should be done only once.
+        if getattr(re, "engine", "pre") == "pre":
+            return re.pcre_expand(m, template)
+        else: # sre
+            # XXX This import should be avoidable...
+            import sre_parse
+            # XXX This parses the template over and over...
+            ptemplate = sre_parse.parse_template(template, m.re)
+            return sre_parse.expand_template(ptemplate, m)
+
     def show_hit(self, first, last):
         text = self.text
         text.mark_set("insert", first)
