diff --git a/lisp/org-element.el b/lisp/org-element.el index 44449d550..d03548cc8 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -3822,7 +3822,8 @@ position of point and CDR is nil." ;; Now set final shape for VALUE. (when parsedp (setq value (org-element-parse-secondary-string value restrict))) - (when dualp (setq value (and value (cons value dual-value)))) + (when dualp + (setq value (and (or value dual-value) (cons value dual-value)))) (when (or (member kwd org-element-multiple-keywords) ;; Attributes can always appear on multiple lines. (string-match "^ATTR_" kwd)) diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 768f3d33e..20fa76b59 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -208,6 +208,11 @@ Some other text (equal '((("l2") "s2") (("l1") "s1")) (org-test-with-temp-text "#+CAPTION[s1]: l1\n#+CAPTION[s2]: l2\nParagraph" + (org-element-property :caption (org-element-at-point))))) + (should + (equal + '((("l1")) (nil "s1")) + (org-test-with-temp-text "#+CAPTION[s1]:\n#+CAPTION: l1\nParagraph" (org-element-property :caption (org-element-at-point))))))