diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/driver/main.ml ocaml-3.09.3-patched/driver/main.ml
*** ocaml-3.09.3/driver/main.ml	Mon May  9 15:39:17 2005
--- ocaml-3.09.3-patched/driver/main.ml	Sat Feb 17 22:15:03 2007
***************
*** 134,139 ****
--- 134,140 ----
    let _drawlambda = set dump_rawlambda
    let _dlambda = set dump_lambda
    let _dinstr = set dump_instr
+   let _ignore_cmi = set ignore_cmi
    let anonymous = anonymous
  end)
  
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/driver/main_args.ml ocaml-3.09.3-patched/driver/main_args.ml
*** ocaml-3.09.3/driver/main_args.ml	Wed Dec 28 18:27:03 2005
--- ocaml-3.09.3-patched/driver/main_args.ml	Sat Feb 17 22:18:10 2007
***************
*** 60,65 ****
--- 60,66 ----
       val _drawlambda : unit -> unit
       val _dlambda : unit -> unit
       val _dinstr : unit -> unit
+      val _ignore_cmi : unit -> unit
       val anonymous : string -> unit
     end) =
  struct
***************
*** 158,164 ****
      "-dlambda", Arg.Unit F._dlambda, " (undocumented)";
      "-dinstr", Arg.Unit F._dinstr, " (undocumented)";
      "-use-prims", Arg.String F._use_prims, "<file>  (undocumented)";
! 
      "-", Arg.String F.anonymous,
             "<file>  Treat <file> as a file name (even if it starts with `-')";
    ]
--- 159,165 ----
      "-dlambda", Arg.Unit F._dlambda, " (undocumented)";
      "-dinstr", Arg.Unit F._dinstr, " (undocumented)";
      "-use-prims", Arg.String F._use_prims, "<file>  (undocumented)";
!     "-ignore-cmi", Arg.Unit F._ignore_cmi, " ignore own cmi/mli file";
      "-", Arg.String F.anonymous,
             "<file>  Treat <file> as a file name (even if it starts with `-')";
    ]
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/driver/main_args.mli ocaml-3.09.3-patched/driver/main_args.mli
*** ocaml-3.09.3/driver/main_args.mli	Mon May  9 15:39:17 2005
--- ocaml-3.09.3-patched/driver/main_args.mli	Sat Feb 17 22:13:39 2007
***************
*** 60,65 ****
--- 60,66 ----
        val _drawlambda : unit -> unit
        val _dlambda : unit -> unit
        val _dinstr : unit -> unit
+       val _ignore_cmi: unit -> unit
        val anonymous : string -> unit
      end) :
    sig
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/tools/ocamlcp.ml ocaml-3.09.3-patched/tools/ocamlcp.ml
*** ocaml-3.09.3/tools/ocamlcp.ml	Mon May  9 15:39:17 2005
--- ocaml-3.09.3-patched/tools/ocamlcp.ml	Sat Feb 17 22:20:10 2007
***************
*** 87,92 ****
--- 87,93 ----
    let _drawlambda = option "-drawlambda"
    let _dlambda = option "-dlambda"
    let _dinstr = option "-dinstr"
+   let _ignore_cmi = option "-ignore_cmi"
    let anonymous = process_file
  end);;
  
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/typing/typemod.ml ocaml-3.09.3-patched/typing/typemod.ml
*** ocaml-3.09.3/typing/typemod.ml	Fri Apr 21 08:18:51 2006
--- ocaml-3.09.3-patched/typing/typemod.ml	Sun Feb 18 08:00:53 2007
***************
*** 793,799 ****
      let coercion =
        let sourceintf =
          Misc.chop_extension_if_any sourcefile ^ !Config.interface_suffix in
!       if Sys.file_exists sourceintf then begin
          let intf_file =
            try
              find_in_path_uncap !Config.load_path (modulename ^ ".cmi")
--- 793,799 ----
      let coercion =
        let sourceintf =
          Misc.chop_extension_if_any sourcefile ^ !Config.interface_suffix in
!       if Sys.file_exists sourceintf && not !Clflags.ignore_cmi then begin
          let intf_file =
            try
              find_in_path_uncap !Config.load_path (modulename ^ ".cmi")
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/utils/clflags.ml ocaml-3.09.3-patched/utils/clflags.ml
*** ocaml-3.09.3/utils/clflags.ml	Mon Aug  1 17:51:09 2005
--- ocaml-3.09.3-patched/utils/clflags.ml	Sat Feb 17 22:16:22 2007
***************
*** 77,82 ****
--- 77,83 ----
  
  let native_code = ref false             (* set to true under ocamlopt *)
  let inline_threshold = ref 10
+ let ignore_cmi = ref false              (* -ignore_cmi *)
  
  let dont_write_files = ref false        (* set to true under ocamldoc *)
  
diff -c -r -x '*.cmo' -x '*.cmi' -x '*.[oa]' ocaml-3.09.3/utils/clflags.mli ocaml-3.09.3-patched/utils/clflags.mli
*** ocaml-3.09.3/utils/clflags.mli	Wed Oct 26 15:23:27 2005
--- ocaml-3.09.3-patched/utils/clflags.mli	Sat Feb 17 22:15:48 2007
***************
*** 73,75 ****
--- 73,76 ----
  val dont_write_files : bool ref
  val std_include_flag : string -> string
  val std_include_dir : unit -> string list
+ val ignore_cmi : bool ref
