Hi Martin, maybe you can use this helper function:
(defun bzg-find-corrupted-property-drawers () "Find corrupted property drawers." (interactive) (let (msgs) (save-excursion (goto-char (point-min)) (while (search-forward ":PROPERTIES:" nil t) (let ((search-end (save-excursion (org-end-of-subtree t)))) (if (not (search-forward ":END:" search-end t)) (push (format "Missing :END: at %d in %s\n" (point) (buffer-name)) msgs))))) (if (not msgs) (message "No corrupted property drawers") (switch-to-buffer-other-window " *Org missing :END:") (mapcar 'insert msgs)))) A bit rought at the edges, but perhaps useful. -- Bastien