diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 25318f0f4..307d09a12 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -635,7 +635,7 @@ identifier = do
 identifierAttr :: PandocMonad m => MarkdownParser m (Attr -> Attr)
 identifierAttr = try $ do
   char '#'
-  result <- identifier
+  result <- T.pack <$> many1 (alphaNum <|> oneOf "-_:.") -- see #7920
   return $ \(_,cs,kvs) -> (result,cs,kvs)
 
 classAttr :: PandocMonad m => MarkdownParser m (Attr -> Attr)
diff --git a/test/command/7920.md b/test/command/7920.md
new file mode 100644
index 000000000..6bfac3af6
--- /dev/null
+++ b/test/command/7920.md
@@ -0,0 +1,20 @@
+```
+% pandoc -t native
+[hi]{#123}
+^D
+[ Para [ Span ( "123" , [] , [] ) [ Str "hi" ] ] ]
+```
+
+```
+% pandoc -t markdown
+[hi]{#123}
+^D
+[hi]{#123}
+```
+
+```
+% pandoc -t markdown
+# Hi {#123}
+^D
+# Hi {#123}
+```