   (save-excursion
     (back-to-indentation)
     (cond
-     ((looking-at comment-start-skip) (current-column))
+     ((and (bolp) (looking-at comment-start-skip)) (current-column))
      ((caml-in-comment-p)
       (let ((closing (looking-at "\\*)"))
             (comment-mark (looking-at "\\*")))


  (let ((start-literal (concat "[\"" caml-quote-char "]"))
        found kwop)
    (progn
      (while (and (not found)
                  (re-search-backward kwop-regexp nil t))
        (setq kwop (caml-match-string 0))
        (cond
         ((looking-at "(\\*")
          (backward-char))
         ((caml-in-comment-p)
          (search-backward "(" nil 'move))
         ((looking-at start-literal))
         ((caml-in-literal-p)
          (re-search-backward start-literal))  ;ugly hack
         ((setq found t)))))
    (if found
        (if (not (string-match "\\`[^|[]|[^]|]?\\'" kwop)) ;arrrrgh!!
            kwop

                             0)
                            abbrev-correct)))))))

(defun caml-indent-phrase ()
  (interactive "*")
  (let ((bounds (caml-mark-phrase)))
    (indent-region (car bounds) (cdr bounds) nil)))

; (defun caml-indent-phrase (arg)
;   (interactive "p")
;   (save-excursion
;     (let ((beg (caml-find-phrase)))
;     (while (progn (setq arg (- arg 1)) (> arg 0))
;       (caml-find-region))
;     (indent-region beg (point) nil))))

(defun caml-indent-buffer ()
  (interactive)
