diff --git a/module/texinfo/html.scm b/module/texinfo/html.scm
index 1e37fdc5b..81dd1f123 100644
--- a/module/texinfo/html.scm
+++ b/module/texinfo/html.scm
@@ -148,8 +148,14 @@ name, @code{#}, and the node name."
(apply append body)))))
(define (entry tag args . body)
- `((dt ,@(arg-req 'heading args))
- (dd ,@body)))
+ (let lp ((headings (list (arg-req 'heading args))) (body body))
+ (if (and (pair? body) (pair? (car body)) (eq? (caar body) 'itemx))
+ (lp (cons (cdar body) headings)
+ (cdr body))
+ `(,@(map (lambda (heading)
+ `(dt ,@(map stexi->shtml heading)))
+ headings)
+ (dd ,@(map stexi->shtml body))))))
(define tag-replacements
'((titlepage div (@ (class "titlepage")))
@@ -230,7 +236,7 @@ name, @code{#}, and the node name."
(node . ,node) (anchor . ,node)
(table . ,table)
(enumerate . ,enumerate)
- (entry . ,entry)
+ (entry *preorder* . ,entry)
(deftp . ,def) (defcv . ,def) (defivar . ,def) (deftypeivar . ,def)
(defop . ,def) (deftypeop . ,def) (defmethod . ,def)