diff --git a/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java b/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java
index 748ff5dfb80ad292321b917932fdd35d4eb7cbe3..30d6d1a5c09d44207fc4d80146b12eb57408002b 100644
--- a/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java
+++ b/commonmark/src/main/java/org/commonmark/renderer/markdown/CoreMarkdownNodeRenderer.java
@@ -89,7 +89,8 @@ public class CoreMarkdownNodeRenderer extends AbstractVisitor implements NodeRen
 
     @Override
     public void visit(ThematicBreak thematicBreak) {
-        writer.raw("***");
+        // Let's use ___ as it doesn't introduce ambiguity with * or - list item markers
+        writer.raw("___");
         writer.block();
     }
 
diff --git a/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java b/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java
index af6a3488a9f3f41139547a1f8c5c512834d2d075..eaabe837c421306a1abcd356f7f21fec837ac2e2 100644
--- a/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java
+++ b/commonmark/src/test/java/org/commonmark/renderer/markdown/MarkdownRendererTest.java
@@ -12,10 +12,11 @@ public class MarkdownRendererTest {
 
     @Test
     public void testThematicBreaks() {
-        assertRoundTrip("***\n");
-        // TODO: spec: If you want a thematic break in a list item, use a different bullet:
-
-        assertRoundTrip("***\n\nfoo\n");
+        assertRoundTrip("___\n");
+        assertRoundTrip("___\n\nfoo\n");
+        // List item with hr -> hr needs to not use the same as the marker
+        assertRoundTrip("* ___\n");
+        assertRoundTrip("- ___\n");
     }
 
     @Test