 
   (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))


(defun fsharp-ac/load-file (file)
  "Start the compiler binding for an individual F# script."
  (when (fsharp-ac--script-file-p file)
    (if (file-exists-p file)
        (when (not (fsharp-ac--process-live-p))
          (fsharp-ac-start-process))
      (add-hook 'after-save-hook 'fsharp-ac--load-after-save nil 'local))))

(defun fsharp-ac--load-after-save ()
