diff --git a/contrib/lisp/org-depend.el b/contrib/lisp/org-depend.el index eb38aa034..089a6a0a8 100644 --- a/contrib/lisp/org-depend.el +++ b/contrib/lisp/org-depend.el @@ -224,12 +224,13 @@ this ID property, that entry is also checked." blocker blockers bl p1 (proceed-p (catch 'return - (unless (eq type 'todo-state-change) - ;; We are not handling this kind of change - (throw 'return t)) - (unless (and (not from) (member to org-not-done-keywords)) - ;; This is not a change from nothing to TODO, ignore it - (throw 'return t)) + ;; If this is not a todo state change, or if this entry is + ;; DONE, do not block + (when (or (not (eq type 'todo-state-change)) + (member from (cons 'done org-done-keywords)) + (member to (cons 'todo org-not-done-keywords)) + (not to)) + (throw 'return t)) ;; OK, the plan is to switch from nothing to TODO ;; Lets see if we will allow it. Find the BLOCKER property