                              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-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)

             (aref caml-kwop-regexps caml-max-indent-priority)))
    (cond
     ; special case for ;;
     ((and (= (preceding-char) ?\;) (= (following-char) ?\;))
      (setq in-expr nil))
     ((looking-at caml-before-expr-prefix)
      (goto-char (match-end 0))
      (skip-chars-forward " \t\n")
      (while (looking-at "(\\*")
        (forward-char)


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