diff -u fwanalog-0.6.4/fwanalog.opts.linux24 fwanalog-0.6.4/fwanalog.opts.linux24
--- fwanalog-0.6.4/fwanalog.opts.linux24
+++ fwanalog-0.6.4/fwanalog.opts.linux24
~AT~~AT~ -98,0 +99,2 ~AT~~AT~
+
+lockdir="/var/lock/fwanalog"
diff -u fwanalog-0.6.4/fwanalog.sh fwanalog-0.6.4/fwanalog.sh
--- fwanalog-0.6.4/fwanalog.sh
+++ fwanalog-0.6.4/fwanalog.sh
~AT~~AT~ -109,7 +109,12 ~AT~~AT~
 #
 # Only update yesterday's page - initialize with false
 #
-yesterday_only=false		
+yesterday_only=false
+
+#
+# Lock directory
+#
+lockdir="/var/lock/fwanalog"
 
 ###########################################################################
 #	Commands - Assist in platform portability - with defaults
~AT~~AT~ -129,6 +134,15 ~AT~~AT~
 
 main ()
 {
+	# Avoid running a fwanalog process twice
+	if [ -d "$lockdir" ]; then
+		echo "fwanalog: another fwanalog process is running, or the '$lockdir'" >> /dev/stderr
+		echo "dir was not correctly removed after the last fwanalog invocation" >> /dev/stderr
+		exit 1
+	else
+		mkdir "$lockdir" || echo "fwanalog: failing to mkdir "$lockdir"" >> /dev/stderr
+	fi
+	
 	# Function to do everything the script normally does.
 
 	# Get today's date for the daily reports.
~AT~~AT~ -1468,9 +1482,7 ~AT~~AT~
 	#	Function to remove temporary files and other housekeeping
 	#	No arguments
 	#####
-
-	true
-	# a no-op so the shell doesn't complain
+	if [ -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

 -d "$lockdir" ]; then rmdir "$lockdir"; fi
 }

