     (setq contents (string-trim contents))
     (message "%s" (replace-regexp-in-string "^" header contents))))
 
-(defun fstar-subp--process-protocol-info (_vernum features)
-  "Register information (VERNUM and FEATURES) about the current protocol."
-  (setq features (mapcar 'intern features))
-  (setq-local fstar-subp--features features)
+(defun fstar-subp--process-protocol-info (_vernum proto-features)
+  "Register information (VERNUM and PROTO-FEATURES) about the protocol."
+  (setq proto-features (mapcar #'intern proto-features))
+  (setq fstar--features (append proto-features fstar--features))
   (fstar-subp-with-process-buffer fstar-subp--process
-    (setq-local fstar-subp--features features)))
+    (setq fstar--features (append proto-features fstar--features))))
 
 (defun fstar-subp--process-response (id status response)
   "Process STATUS and RESPONSE for query ID from F* subprocess."

COMMAND, ARG: see `company-backends'."
  (interactive '(interactive))
  ;; (fstar-log 'info "fstar-subp-company-backend: %S %S" command arg)
  (when (fstar-subp--has-feature 'autocomplete)
    (pcase command
      (`interactive
       (company-begin-backend #'fstar-subp-company-backend))


(defun fstar-subp-make-buffer ()
  "Create a buffer for the F* subprocess."
  (let ((vernum fstar--vernum)
        (features fstar--features))
    (with-current-buffer (generate-new-buffer
                          (format " *F* interactive for %s*" (buffer-name)))
      (add-hook 'kill-buffer-hook #'fstar-subp-buffer-killed t t)
      (setq fstar--vernum vernum fstar--features features)
      (buffer-disable-undo)
      (current-buffer))))

