Index: main/org-autofocus.el
===================================================================
--- main/org-autofocus.el	(revision main,3)
+++ main/org-autofocus.el	(revision main,4)
@@ -30,6 +30,11 @@
   "Print the task OBJ in the current buffer at point."
   (with-slots (org marked passed) obj
-    (unless passed
-      (insert (if marked "*" " ") " " org "\n"))))
+    (when (or marked (not passed))
+      (insert (if marked "*" " ")
+              " "
+              (if passed
+                  (propertize org 'face 'org-agenda-dimmed-todo-face)
+                org)
+              "\n"))))
 
 
@@ -56,15 +61,19 @@
          (obj (ewoc-data node))
          changed)
-    (let ((marked (not (slot-value obj 'marked))))
-      (setf (slot-value obj 'marked) marked)
-      (push node changed)
-      (let ((node node))
-        (while (and (setq node (ewoc-prev org-af--ewoc node))
-                    (setq obj (ewoc-data node))
-                    (not (slot-value obj 'marked)))
-          (setf (slot-value obj 'passed) marked)
-          (push node changed))))
-    (apply 'ewoc-invalidate org-af--ewoc changed)
-    (ewoc-goto-node org-af--ewoc node)))
+    (unless (slot-value obj 'passed)
+      (let ((marked (not (slot-value obj 'marked))))
+        (setf (slot-value obj 'marked) marked)
+        (push node changed)
+        (let ((node node))
+          (while (and (setf node (ewoc-prev org-af--ewoc node))
+                      (setf obj (ewoc-data node))
+                      (not (slot-value obj 'marked)))
+            (setf (slot-value obj 'passed) marked)
+            (push node changed))
+          (when node
+            (setf (slot-value obj 'passed) marked)
+            (push node changed))))
+      (apply 'ewoc-invalidate org-af--ewoc changed)
+      (ewoc-goto-node org-af--ewoc node))))
 
 
