@@ -456,15 +456,16 @@ definitionListItem = try $ do
456456 return ((normalizeSpaces term), contents)
457457
458458defRawBlock = try $ do
459− indentSpaces
460− first <- anyLine
461− rest <- manyTill (do {option "" (try indentSpaces);
462− anyLine}) blanklines
463− return $ (unlines (first:rest)) ++ "\n"
459+ rawlines <- many1 (do {notFollowedBy' blankline; indentSpaces; anyLine})
460+ trailing <- option "" blanklines
461+ return $ (unlines rawlines) ++ trailing
464462
465463definitionList = do
466464 items <- many1 definitionListItem
467− return $ DefinitionList items
465+ let (terms, defs) = unzip items
466+ let defs' = compactify defs
467+ let items' = zip terms defs'
468+ return $ DefinitionList items'
468469
469470--
470471-- paragraph block