--- rc.shutdown.old	2007-02-14 21:00:58.000000000 +0100
+++ rc.shutdown	2007-02-14 22:18:27.000000000 +0100
@@ -23,20 +23,10 @@
 fi
 
 if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
-	# Shutdown daemons
-	let i=${#DAEMONS[@]}
-	while [[ i -ge 0 ]]; do
-		if [[ `echo ${DAEMONS[$i]} | grep '^[^\!]' | wc -l` -eq 1 ]]; then
-			/etc/rc.d/${DAEMONS[$i]#@} stop
-		fi
-		let i=i-1
+  # Shutdown daemons in reversed order of starting
+  for daemon in `ls -t /var/run/daemons`; do
+		/etc/rc.d/$daemon stop
 	done
-	# find any leftover daemons and shut them down
-	if [ -d /var/run/daemons ]; then
-		for daemon in `ls /var/run/daemons`; do
-			/etc/rc.d/$daemon stop
-		done
-	fi
 fi
 
 # Terminate all processes
