diff --git a/hgext3rd/evolve/evolvecmd.py b/hgext3rd/evolve/evolvecmd.py
index ba316ce1504052c85336c69b3adc9a9b7020d905_aGdleHQzcmQvZXZvbHZlL2V2b2x2ZWNtZC5weQ==..2662c6704ebda346313943a2182c5d841d05c291_aGdleHQzcmQvZXZvbHZlL2V2b2x2ZWNtZC5weQ== 100644
--- a/hgext3rd/evolve/evolvecmd.py
+++ b/hgext3rd/evolve/evolvecmd.py
@@ -816,11 +816,5 @@
     there were conflicts or not while merging the messages"""
 
     merger = simplemerge.Merge3Text(basedesc, divdesc, othdesc)
-    mdesc = []
-    kwargs = {}
-    kwargs['name_base'] = b'base'
-    kwargs['base_marker'] = b'|||||||'
-    for line in merger.merge_lines(name_a=b'divergent', name_b=b'other',
-                                   **kwargs):
-        mdesc.append(line)
+    kwargs = {'name_a': b'divergent', 'name_b': b'other', 'name_base': b'base'}
 
@@ -826,6 +820,14 @@
 
-    desc = b''.join(mdesc)
-    if merger.conflicts:
+    if util.safehasattr(simplemerge, 'render_merge3'):
+        lines, conflicts = simplemerge.render_merge3(merger, **kwargs)
+        desc = b''.join(lines)
+    else:
+        # hg <= 6.0 (12ac4401ff7d)
+        kwargs['base_marker'] = b'|||||||'
+        desc = b''.join(merger.merge_lines(**kwargs))
+        conflicts = merger.conflicts
+
+    if conflicts:
 
         prefixes = (b"HG: Conflicts while merging changeset description of"
                     b" content-divergent changesets.\nHG: Resolve conflicts"