diff --git a/library/std/src/keyword_docs.rs b/library/std/src/keyword_docs.rs
index 873bfb6218b64..f7642ae05fdc7 100644
--- a/library/std/src/keyword_docs.rs
+++ b/library/std/src/keyword_docs.rs
@@ -1095,7 +1095,7 @@ mod move_keyword {}
/// ```rust,compile_fail,E0502
/// let mut v = vec![0, 1];
/// let mut_ref_v = &mut v;
-/// ##[allow(unused)]
+/// #[allow(unused)]
/// let ref_v = &v;
/// mut_ref_v.push(2);
/// ```
diff --git a/src/librustdoc/html/markdown.rs b/src/librustdoc/html/markdown.rs
index abc27bcdf0782..37db6f9c6ebb6 100644
--- a/src/librustdoc/html/markdown.rs
+++ b/src/librustdoc/html/markdown.rs
@@ -168,9 +168,7 @@ impl<'a> Line<'a> {
// then reallocate to remove it; which would make us return a String.
fn map_line(s: &str) -> Line<'_> {
let trimmed = s.trim();
- if trimmed.starts_with("##") {
- Line::Shown(Cow::Owned(s.replacen("##", "#", 1)))
- } else if let Some(stripped) = trimmed.strip_prefix("# ") {
+ if let Some(stripped) = trimmed.strip_prefix("# ") {
// # text
Line::Hidden(stripped)
} else if trimmed == "#" {
diff --git a/tests/rustdoc/issue-41783.codeblock.html b/tests/rustdoc/issue-41783.codeblock.html
index 3bca4536cd5b6..1abb9075de80a 100644
--- a/tests/rustdoc/issue-41783.codeblock.html
+++ b/tests/rustdoc/issue-41783.codeblock.html
@@ -1,5 +1,5 @@
-# single
-## double
-### triple
-#[outer]
-#![inner]
+## single
+### double
+#### triple
+##[outer]
+##![inner]
\ No newline at end of file
diff --git a/tests/rustdoc/issue-41783.rs b/tests/rustdoc/issue-41783.rs
index 7578d49daa508..1d5f000583e06 100644
--- a/tests/rustdoc/issue-41783.rs
+++ b/tests/rustdoc/issue-41783.rs
@@ -4,7 +4,7 @@
// @hasraw - '#[outer]'
// @!hasraw - '#[outer]'
// @hasraw - '#![inner]'
-// @!hasraw - '#![inner]'
+// @hasraw - '##![inner]'
// @snapshot 'codeblock' - '//*[@class="toggle top-doc"]/*[@class="docblock"]//pre/code'
/// ```no_run