I did a quick hack to Tuareg to get indentation working in python-mode like way. You will find the el file here enclosed. To autoload I use the following (warning to lisp lovers: this is very ugly, I'm just getting started with elisp). (autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t) (autoload 'caml+twt-mode "caml+twt" "Major mode for editing Caml+twt code" t) (defun start-mlmode () (when (save-excursion (progn (goto-char (point-min)) (looking-at "(\\*pp ocaml\\+twt\\*)[:blank:]*") ) ) (caml+twt-mode) ;;(tuareg-mode) ) (remove-hook 'find-file-hook 'start-mlmode 1) ) (add-hook 'tuareg-load-hook ( lambda ()(add-hook 'find-file-hook 'start-mlmode 1)) Which will switch over to caml+twt mode on opening a file with a .ml extension only if the first line is: (*pp ocaml+twt*) (this is consistent with OCamlMakefile). Syntax highlighting of comments doesn't work anymore. Hope this turns out usefull to someone. Till P.S. Mike, I sent you a mail about this mode a while back but I never got an answer. If some lisp addict could clean it up I think it should go in the distribtion of ocaml+twt.