diff --git a/extensions/lsp-mode/lsp-mode.lisp b/extensions/lsp-mode/lsp-mode.lisp
index e2970e1f0..f16fe7d02 100644
--- a/extensions/lsp-mode/lsp-mode.lisp
+++ b/extensions/lsp-mode/lsp-mode.lisp
@@ -738,7 +738,7 @@
     (do-sequence (diagnostic (lsp:publish-diagnostics-params-diagnostics params))
       (highlight-diagnostic buffer diagnostic))
     (setf (buffer-diagnostic-idle-timer buffer)
-          (start-timer (make-idle-timer #'popup-diagnostic :name "lsp-diagnostic")
+          (start-timer (make-idle-timer 'popup-diagnostic :name "lsp-diagnostic")
                        200
                        t))))
 
@@ -747,7 +747,8 @@
     (when (point<= (overlay-start overlay)
                    (current-point)
                    (overlay-end overlay))
-      (display-message (diagnostic-message (overlay-diagnostic overlay)))
+      (unless (mode-active-p (current-buffer) 'lem/completion-mode:completion-mode)
+        (display-message (diagnostic-message (overlay-diagnostic overlay))))
       (return))))
 
 (defun text-document/publish-diagnostics (params)
diff --git a/src/ext/completion-mode.lisp b/src/ext/completion-mode.lisp
index 05c515311..717ed5660 100644
--- a/src/ext/completion-mode.lisp
+++ b/src/ext/completion-mode.lisp
@@ -6,7 +6,8 @@
            :completion-item-label
            :completion-item-detail
            :run-completion
-           :completion-end)
+           :completion-end
+           :completion-mode)
   #+sbcl
   (:lock t))
 (in-package :lem/completion-mode)