diff --git a/Doc/tools/mkhowto b/Doc/tools/mkhowto
index 1903a53..faee6cf 100755
--- a/Doc/tools/mkhowto
+++ b/Doc/tools/mkhowto
@@ -97,6 +97,7 @@
 
     def __init__(self):
         self.formats = []
+        self.l2h_init_files = []
 
     def __getitem__(self, key):
         # This is used when formatting the usage message.
@@ -108,7 +109,7 @@
     def parse(self, args):
         opts, args = getopt.getopt(args, "Hi:a:s:lDkqr:",
                                    ["all", "postscript", "help", "iconserver=",
-                                    "address=", "a4", "letter",
+                                    "address=", "a4", "letter", "l2h-init=",
                                     "link=", "split=", "logging", "debugging",
                                     "keep", "quiet", "runs=", "image-type=",
                                     "about=", "numeric", "style="]
@@ -151,6 +152,8 @@
                 self.numeric = 1
             elif opt == "--style":
                 self.style_file = os.path.abspath(arg)
+            elif opt == "--l2h-init":
+                self.l2h_init_files.append(os.path.abspath(arg))
             #
             # Format specifiers:
             #
@@ -303,7 +306,7 @@
         self.process_synopsis_files()
 
     def use_latex_manual(self, binary):
-        pass
+        self.use_latex_howto(binary)
 
     def process_synopsis_files(self):
         synopsis_files = glob.glob(self.doc + "*.syn")
@@ -364,6 +367,7 @@
             self.build_aux(binary=binary)
 
     def write_l2h_aux_init_file(self):
+        options = self.options
         fp = open(self.l2h_aux_init_file, "w")
         d = string_to_perl(os.path.dirname(L2H_INIT_FILE))
         fp.write("package main;\n"
@@ -371,12 +375,16 @@
                  "$mydir = '%s';\n"
                  % (d, d))
         fp.write(open(L2H_INIT_FILE).read())
+        for filename in options.l2h_init_files:
+            fp.write("\n# initialization code incorporated from:\n# ")
+            fp.write(filename)
+            fp.write("\n")
+            fp.write(open(filename).read())
         fp.write("\n"
                  "# auxillary init file for latex2html\n"
                  "# generated by mkhowto\n"
                  "$NO_AUTO_LINK = 1;\n"
                  )
-        options = self.options
         l2hoption(fp, "ABOUT_FILE", options.about_file)
         l2hoption(fp, "ICONSERVER", options.icon_server)
         l2hoption(fp, "IMAGE_TYPE", options.image_type)
