diff --git a/docs/CompiledPrograms.xml b/docs/CompiledPrograms.xml
index 80c6c5926..1f541826e 100644
--- a/docs/CompiledPrograms.xml
+++ b/docs/CompiledPrograms.xml
@@ -338,14 +338,95 @@
         export directory as follows:</para>
 
         <blockquote>
-          <programlisting>ignorefiles =  firewall% Makefile% trace% %~
+          <programlisting>#     Shorewall Packet Filtering Firewall Export Directory Makefile - V3.3
+#
+#     This program is under GPL [http://www.gnu.org/copyleft/gpl.htm]
+#
+#     (c) 2006 - Tom Eastep (teastep@shorewall.net)
+#
+#       Shorewall documentation is available at http://www.shorewall.net
+#
+#       This program is free software; you can redistribute it and/or modify
+#       it under the terms of Version 2 of the GNU General Public License
+#       as published by the Free Software Foundation.
+#
+#       This program is distributed in the hope that it will be useful,
+#       but WITHOUT ANY WARRANTY; without even the implied warranty of
+#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+#       GNU General Public License for more details.
+#
+#       You should have received a copy of the GNU General Public License
+#       along with this program; if not, write to the Free Software
+#       Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA
+################################################################################
+# Place this file in each export directory. Modify each copy to set HOST
+# to the name of the remote firewall corresponding to the directory.
+#
+#       To make the 'firewall' script, type "make".
+# 
+#       Once the script is compiling correctly, you can install it by
+#       typing "make install".
+#  
+################################################################################
+#                             V A R I A B L E S
+#
+# Files in the export directory on which the firewall script does not depend
+#
+IGNOREFILES =  firewall% Makefile% trace% %~
+#
+# Remote Firewall system
+#
+HOST = gateway
+#
+# Save some typing
+#
+LITEDIR = /var/lib/shorewall-lite
+#
+# Default target is the firewall script
+#
+################################################################################
+#                                T A R G E T S
+#
 all: firewall
-firewall: $(filter-out $(ignorefiles) , $(wildcard *) )
-        @shorewall reload -c -s gateway</programlisting>
+#
+# Only generate the capabilities file if it doesn't already exist
+#
+capabilities: 
+        ssh root@$(HOST) "/sbin/shorewall-lite show -f capabilities &gt; $(LITEDIR)/capabilities"
+        scp root@$(HOST):$(LITEDIR)/capabilities .
+#
+# Compile the firewall script. Using the 'wildcard' function causes "*" to be expanded so that
+# 'filter-out' will be presented with the list of files in this directory rather than "*"
+#
+firewall: $(filter-out $(IGNOREFILES) capabilities , $(wildcard *) ) capabilities
+        shorewall compile -e . firewall
+#
+# Only reload on demand.
+#
+install: firewall
+        scp firewall firewall.conf root@$(HOST):$(LITEDIR)
+        ssh root@$(HOST) "/sbin/shorewall-lite restart"
+#
+# Save running configuration
+#
+save:
+        ssh root@$(HOST) "/sbin/shorewall-lite save"
+#
+# Remove generated files
+#
+clean: 
+        rm -f capabilities firewall firewall.conf reload
+</programlisting>
         </blockquote>
 
         <para>That way, after I've changed the configuration, I can simply
-        type <command>make</command>.</para>
+        type <command>make</command> or <emphasis role="bold">make
+        install</emphasis>.</para>
+
+        <note>
+          <para>The above Makefile is available at <ulink
+          url="http://www1.shorewall.net/pub/shorewall/contrib/Shorewall-lite/">http://www.shorewall.net/pub/shorewall/contrib/Shorewall-lite/</ulink></para>
+        </note>
 
         <note>
           <para>I omit trace% because I often trace compiler execution while