Hi It jumps out that ff-find-other-file will create the expecting file name with an extra trailling backslash, which makes the the newly opened buffer as directory. This happens after I updated all the 3rd party packages to the latest version. Although I havn't found out which package caused this issue, but the following patch will fix it, and I think it makes more sense to use read-file-name than read-directory-name --- emacs\share\emacs\24.5\lisp\find-file.el +++ emacs\share\emacs\24.5\lisp\find-file.el @@ -495,7 +495,7 @@ (setq name (expand-file-name - (read-directory-name + (read-file-name (format "Find or create %s in: " default-name) default-directory default-name nil))) In GNU Emacs 24.5.1 (i686-pc-mingw32) of 2015-04-11 on LEG570 Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix=/c/usr --host=i686-pc-mingw32' Important settings: value of $LANG: CHS locale-coding-system: cp936 Major mode: Emacs-Lisp Minor modes in effect: recentf-mode: t clean-aindent-mode: t global-company-mode: t company-mode: t yas-global-mode: t yas-minor-mode: t global-fci-mode: t fci-mode: t global-anzu-mode: t anzu-mode: t delete-selection-mode: t show-paren-mode: t global-linum-mode: t linum-mode: t helm-mode: t shell-dirtrack-mode: t async-bytecomp-package-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Working... Finding buffer pathname.cpp... Finding ./pathname.cpp... Finding /usr/include/pathname.cpp... (New file) Type "q" in help window to restore its previous buffer, C-M-v to scroll help. C-x C-g is undefined Quit Mark set [4 times] Mark saved where search started Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug sendmail mm-archive message rfc822 mml mml-sec mailabbrev gmm-utils mailheader mm-decode mm-bodies mm-encode mail-utils gnutls network-stream starttls url-http tls mail-parse rfc2231 rfc2047 rfc2045 ietf-drums url-gw url-cache url-auth url-handlers finder-inf misearch multi-isearch find-file recentf tree-widget wid-edit ido helm-command eieio-opt speedbar sb-image ezimage dframe find-func winner helm-elisp helm-eval edebug eldoc vc-git helm-gtags pulse which-func imenu ws-butler cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs clean-aindent-mode company-files company-oddmuse company-keywords company-etags etags company-gtags company-dabbrev-code company-dabbrev company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb company init-local init-org init-git init-yasnippet yasnippet cl init-company init-editting fill-column-indicator anzu mule-util delsel paren linum init-speedbar init-cc smart-tabs-mode init-helm helm-mode helm-files rx tramp tramp-compat tramp-loaddefs trampver shell pcomplete ffap thingatpt helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-match-plugin helm-external helm-net browse-url xml url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse auth-source gnus-util mm-util mail-prsvr password-cache url-vars mailcap helm-types helm-swoop helm-grep helm-regexp helm-plugin helm-utils grep compile comint ansi-color ring helm-help helm cl-macs gv helm-source eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core helm-lib help-mode easy-mmode dired+ image-dired format-spec image-file dired-x dired-aux dired helm-config helm-easymenu edmacro kmacro async-bytecomp advice help-fns async helm-aliases cl-loaddefs cl-lib init-dired+ init-elpa info easymenu package epg-config init-misc leuven-theme init-proxy time-date china-util tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) Memory information: ((conses 8 363258 404536) (symbols 32 39646 66) (miscs 32 2070 6727) (strings 16 85062 231828) (string-bytes 1 2496192) (vectors 8 42179) (vector-slots 4 1604294 357330) (floats 8 652 1306) (intervals 28 3552 2997) (buffers 508 28))