         (delete-file +mu4e-lock-file) nil))))
 
 ;;;###autoload
-(defun +mu4e-lock-avalible (&optional strict)
-  "If the `+mu4e-lock-file' is avalible (unset or owned by this emacs) return t.
+(defun +mu4e-lock-available (&optional strict)
+  "If the `+mu4e-lock-file' is available (unset or owned by this emacs) return t.
 If STRICT only accept an unset lock file."
   (not (when-let* ((lock-info (+mu4e-lock-pid-info))
                    (pid (car lock-info)))

(defun +mu4e-lock-start (orig-fun &optional callback)
  "Check `+mu4e-lock-file', and if another process is responsible for it, abort starting.
Else, write to this process' PID to the lock file"
  (unless (+mu4e-lock-avalible)
    (shell-command (format "touch %s" +mu4e-lock-request-file))
    (message "Lock file exists, requesting that it be given up")
    (sleep-for 0.1)
    (delete-file +mu4e-lock-request-file))
  (if (not (+mu4e-lock-avalible))
      (user-error "Unfortunately another Emacs is already doing stuff with Mu4e, and you can only have one at a time")
    (f-write-text (number-to-string (emacs-pid)) 'utf-8 +mu4e-lock-file)
    (delete-file +mu4e-lock-request-file)

;;;###autoload
(defun +mu4e-lock-file-delete-maybe ()
  "Check `+mu4e-lock-file', and delete it if this process is responsible for it."
  (when (+mu4e-lock-available)
    (delete-file +mu4e-lock-file)
    (file-notify-rm-watch +mu4e-lock--request-watcher)))

