diff --git a/examples/ml/README b/examples/ml/README
index 7d33df743..844638552 100644
--- a/examples/ml/README
+++ b/examples/ml/README
@@ -15,8 +15,8 @@ for the byte-code version.
 If Z3 was installed into the ocamlfind package repository (see src/api/ml/README),
 then we can compile this example as follows:
 
-ocamlfind ocamlc -o ml_example.byte -custom -package Z3 -linkpkg
-ocamlfind ocamlopt -o ml_example -package Z3 -linkpkg
+ocamlfind ocamlc -o ml_example.byte -custom -package Z3 -linkpkg ml_example.ml
+ocamlfind ocamlopt -o ml_example -package Z3 -linkpkg ml_example.ml
 
 Note that the resulting binaries depend on the shared z3 library, which needs to be 
 in the PATH (Windows), LD_LIBRARY_PATH (Linux) or DYLD_LIBRARY_PATH (OSX). If Z3 was 
diff --git a/scripts/mk_util.py b/scripts/mk_util.py
index 84621e396..8577479b7 100644
--- a/scripts/mk_util.py
+++ b/scripts/mk_util.py
@@ -1401,6 +1401,9 @@ class MLComponent(Component):
                 out.write('ocamlfind_install: api/ml/z3.cma api/ml/z3.cmxa\n')
                 out.write('\t%s remove Z3\n' % (OCAMLFIND))
                 out.write('\t%s install Z3 api/ml/META api/ml/z3.cma api/ml/z3.cmxa api/ml/z3$(LIB_EXT) api/ml/libz3ml$(LIB_EXT) libz3$(SO_EXT)' % (OCAMLFIND))
+                for m in modules:
+                    out.write(' %s.cmi' % (os.path.join(sub_dir, m)))
+                    out.write(' %s.cmx' % (os.path.join(sub_dir, m)))
                 if IS_WINDOWS:
                     out.write(' libz3$(LIB_EXT)')
                 out.write('\n')