 
   (when (fsharp-ac--valid-project-p file)
     (fsharp-ac--reset)
-    (fsharp-ac-start-process)
+    (when (not (fsharp-ac--process-live-p))
+      (fsharp-ac-start-process))
     ;; Load given project.
     (log-psendstr fsharp-ac-completion-process
                   (format "project \"%s\"\n" (expand-file-name file)))

  "Launch the F# completion process in the background"
  (interactive)

  (when (and fsharp-ac-completion-process
             (process-live-p fsharp-ac-completion-process))
    (kill-process fsharp-ac-completion-process))

  (setq fsharp-ac-completion-process (fsharp-ac--configure-proc))

    nil))

(defun fsharp-ac-can-make-request ()
  (and (fsharp-ac--process-live-p)
       (or
        (member (expand-file-name (buffer-file-name)) fsharp-ac-project-files)
        (string-match-p (rx (or "fsx" "fsscript"))
                        (file-name-extension (buffer-file-name))))))

(defvar fsharp-ac-awaiting-tooltip nil)
