diff --git a/libexec/rc/rc.d/ipfw b/libexec/rc/rc.d/ipfw
--- a/libexec/rc/rc.d/ipfw
+++ b/libexec/rc/rc.d/ipfw
@@ -74,8 +74,14 @@
 		${SYSCTL} net.inet.ip.fw.verbose=1 >/dev/null
 	fi
 	if checkyesno firewall_logif; then
-		ifconfig ipfw0 create
-		echo 'Firewall logging pseudo-interface (ipfw0) created.'
+		if ! ifconfig ipfw0 >/dev/null 2>&1; then
+			ifconfig ipfw0 create
+			echo 'Firewall logging pseudo-interface (ipfw0)' \
+			    'created.'
+		else
+			echo 'Firewall logging pseudo-interface (ipfw0)' \
+			    'already created.'
+		fi
 	fi
 }