diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index c3469b22b..ab5aa6b05 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -589,10 +589,13 @@ setextHeader = try $ do
   return $ B.headerWith attr' level <$> text
 
 registerImplicitHeader :: PandocMonad m => String -> Attr -> MarkdownParser m ()
-registerImplicitHeader raw attr@(ident, _, _) = do
-  let key = toKey $ "[" ++ raw ++ "]"
-  updateState (\s -> s { stateHeaderKeys =
-                         M.insert key (('#':ident,""), attr) (stateHeaderKeys s) })
+registerImplicitHeader raw attr@(ident, _, _)
+  | null raw  = return ()
+  | otherwise = do
+      let key = toKey $ "[" ++ raw ++ "]"
+      updateState $ \s ->
+        s { stateHeaderKeys = M.insert key (('#':ident,""), attr)
+                                     (stateHeaderKeys s) }
 
 --
 -- hrule block
diff --git a/test/command/5549.md b/test/command/5549.md
new file mode 100644
index 000000000..fa030d921
--- /dev/null
+++ b/test/command/5549.md
@@ -0,0 +1,9 @@
+```
+% pandoc -t native
+##
+
+[]
+^D
+[Header 2 ("section",[],[]) []
+,Para [Str "[]"]]
+```