@@ -367,7 +367,10 @@ definitionList = B.definitionList <$> many1 defListItem
367367defListItem :: MWParser (Inlines, [Blocks])
368368defListItem = try $ do
369369 terms <- mconcat . intersperse B.linebreak <$> many defListTerm
370− defs <- many1 $ listItem ':'
370+ -- we allow dd with no dt, or dt with no dd
371+ defs <- if B.isNull terms
372+ then many1 $ listItem ':'
373+ else many $ listItem ':'
371374 return (terms, defs)
372375
373376defListTerm :: MWParser Inlines