* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
`start-file-process' shall work when `non-essential' is
non-nil, but there is already an established connection.
<https://github.com/company-mode/company-mode/issues/462>
;; If `non-essential' is non-nil, don't reopen a new connection.
;; This variable has been introduced with Emacs 24.1.
- (when (and (boundp 'non-essential) (symbol-value 'non-essential))
+ ;; We check this for the process related to
+ ;; `tramp-buffer-name'; otherwise `start-file-process'
+ ;; wouldn't run ever when `non-essential' is non-nil.
+ (when (and (boundp 'non-essential) (symbol-value 'non-essential)
+ (null (get-process (tramp-buffer-name vec))))
(throw 'non-essential 'non-essential))
(with-tramp-progress-reporter