 directory, so /home/bob/project/foo.c will match the tag file in
 /home/bobo/project/TAGS.  If no match is found, return nil"
   (let ((resolved-fname (file-truename filename)))
-    (car (filter
+    (car (mural-filter
           (lambda (tagfile)
             ;; file-truename resolves symlinks so we make sure to
             ;; compare the same thing

  (setq mural-tagfile-to-process
        (cons
         (cons tagfile process)
         (filter (lambda (entry)
                   (not (equal tagfile (car entry))))
                 mural-tagfile-to-process))))


     proc))

;; I can't believe I have to write this function
(defun mural-filter (pred lst)
  (if (eq 0 (length lst))
      '()
    (let ((fst (car lst))
          (rst (mural-filter pred (cdr lst))))
      (if (funcall pred fst)
        (cons fst rst)
        rst))))
