 (defun anything-find-files-persistent-action (candidate)
   "Open subtree CANDIDATE without quitting anything.
 If CANDIDATE is not a directory open this file."
-  (if (file-directory-p candidate)
-      (with-selected-window (minibuffer-window)
-        (delete-minibuffer-contents)
-        (let* ((cand-no-prop (file-name-as-directory
-                              (expand-file-name candidate)))
-               (len          (length cand-no-prop)))
-          (set-text-properties 0 len nil cand-no-prop)
-          (insert cand-no-prop)))
-      (find-file candidate)))
+  (flet ((insert-in-minibuffer (elm)
+           (with-selected-window (minibuffer-window)
+             (delete-minibuffer-contents)
+             (set-text-properties 0 (length elm) nil elm)
+             (insert elm))))
+    (cond ((file-directory-p candidate)
+           (insert-in-minibuffer (file-name-as-directory
+                                  (expand-file-name candidate))))
+          ((file-symlink-p candidate)
+           (insert-in-minibuffer (file-truename candidate)))
+          (t (find-file candidate)))))
 
 (defun anything-find-files ()
   "Preconfigured anything for `find-file'."

(defun anything-c-highlight-ffiles (files)
  "Candidate transformer for `anything-c-source-find-files'."
  (loop for i in files
     if (file-directory-p i)
     collect (propertize i 'face anything-c-files-face1) into a
     else

        (if (string= result "~/") "~/" result)
        (if (< level 0)
            (if empty "../" (concat "../" result))
            (cond ((and (eq system-type 'windows-nt) empty)
                   "c:/")
                  ((and (not empty) (eq system-type 'windows-nt))
                   result)
                  (empty "/")
                  (t
                   (concat "/" result)))))))

(defun anything-find-files-down-one-level (arg)
  "Go down one level like unix command `cd ..'.
If prefix numeric arg is given go ARG level down."
  (interactive "p")
  (when (or (equal (cdr (assoc 'name (anything-get-current-source))) "Find Files")
            (equal (cdr (assoc 'name (anything-get-current-source))) "Copy Files")
            (equal (cdr (assoc 'name (anything-get-current-source))) "Rename Files")
            (equal (cdr (assoc 'name (anything-get-current-source))) "Symlink Files")
            (equal (cdr (assoc 'name (anything-get-current-source))) "Hardlink Files"))
    (let ((new-pattern (anything-reduce-file-name anything-pattern arg :unix-close t :expand t)))
      (with-selected-window (minibuffer-window)
        (delete-minibuffer-contents)
