                    (point-max) t)
                   (progn
                     (if (window-live-p window) (select-window window))
-                    (error "Entry %S not found in module %S"
+                    (error "Entry %s not found in module %s"
                            entry module))
                   ;; (search-forward entry (point-max) t)
                   )

(make-variable-buffer-local 'ocaml-links)

(defun ocaml-info-links (section)
  (if (and ocaml-links section (equal (car ocaml-links) section))
      (cdr ocaml-links)
    (save-excursion
      (goto-char (point-min))
      (let ((regexp (concat (if (equal major-mode 'Info-mode) "^ - " "^")
                            ocaml-link-regexp))
            (all))
        (while (re-search-forward regexp (point-max) t)
          (setq all
                (cons (cons (match-string 4)
                            (cons (match-beginning 4)
                                  (match-end 4)))
                      all)))
        (setq ocaml-links (cons section all))
        ))))

(defvar ocaml-link-map (make-sparse-keymap))
(define-key ocaml-link-map [mouse-2] 'ocaml-link-goto)

              (case-fold-search nil))
          (goto-char (point-min))
          (if (or (re-search-forward
                   (concat "\\(val\\|exception\\|type\\|external\\|[|{;]\\) +"
                           (regexp-quote entry))
                   (point-max) t)
                  (re-search-forward
