I'm a bit surprised to find that native dynlink doesn't work in the same way as bytecode dynlink in respect to reloading the same module. (See attached test program) In bytecode dynlink, reloading (ie. Dynlink.loadfile) the same module causes the new module code to override the old module code: $ ./dynlink_test testing bytecode ... a b But in native dynlink, the new module is silently discarded and the old code appears to run: $ ./dynlink_test testing native ... a a I would classify this as a bug, but I'm not quite sure what is expected to happen. Is there some other way to override a module as in bytecode? $ ocaml -version The Objective Caml toplevel, version 3.12.1 Rich. -- Richard Jones Red Hat