diff -ruN rc-scripts-1.4.3.12p3/init.d/checkfs rc-scripts-1.4.3.12p9/init.d/checkfs
--- rc-scripts-1.4.3.12p3/init.d/checkfs	2004-01-05 18:50:42.000000000 -0500
+++ rc-scripts-1.4.3.12p9/init.d/checkfs	2004-01-25 02:16:11.000000000 -0500
@@ -14,7 +14,7 @@
 	#
 	# EVMS2 summport for /usr, /var ....
 	#
-	if [ -f /sbin/evms_activate ]
+	if [ "${CDBOOT}" = "" -a -f /sbin/evms_activate ]
 	then
 		ebegin "Activating EVMS2"
 		evms_activate
@@ -29,7 +29,7 @@
 	# NOTE: Add needed modules for LVM or RAID, etc
 	#       to /etc/modules.autoload if needed
 	
-	if [ -x /sbin/vgscan ] && \
+	if [ "${CDBOOT}" = "" -a -x /sbin/vgscan ] && \
 	   [ -d /proc/lvm -o "$(grep device-mapper /proc/misc 2>/dev/null)" ]
 	then
 		ebegin "Setting up the Logical Volume Manager"
@@ -48,7 +48,7 @@
 	# properly configured /etc/mdadm.conf for mdadm usage. Devices in
 	# /etc/mdadm.conf are initialized first, so any duplicate devices in
 	# /etc/raidtab will not get initialized.
-	if [ -f /proc/mdstat ]
+	if [ "${CDBOOT}" = "" -a -f /proc/mdstat ]
 	then
 		local mdadm_devices=
 		local raidtools_devices=
diff -ruN rc-scripts-1.4.3.12p3/init.d/halt.sh rc-scripts-1.4.3.12p9/init.d/halt.sh
--- rc-scripts-1.4.3.12p3/init.d/halt.sh	2003-11-26 14:16:18.000000000 -0500
+++ rc-scripts-1.4.3.12p9/init.d/halt.sh	2004-02-01 17:37:07.000000000 -0500
@@ -2,6 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Header: /home/cvsroot/gentoo-src/rc-scripts/init.d/halt.sh,v 1.46 2003/11/26 19:16:18 azarah Exp $
 
+# Check to see if this is a livecd, if it is read the commandline
+# this mainly makes sure $CDBOOT is defined if it's a livecd
+[ -f "/sbin/livecd-functions.sh" ] && source /sbin/livecd-functions.sh && \
+	livecd_read_commandline
 
 # Reset pam_console permissions
 [ -x /sbin/pam_console_apply -a ! -c /dev/.devfsd ] && \
@@ -48,7 +52,8 @@
 # Unmount file systems, killing processes if we have to.
 # Unmount loopback stuff first
 # Use `umount -d` to detach the loopback device
-remaining="`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts | sort -r`"
+remaining="`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts | \
+	   sort -r | sed -e 's:/newroot::g' | grep -v mnt/livecd`"
 [ -n "${remaining}" ] && {
 	sig=
 	retry=3
@@ -66,7 +71,8 @@
 			eend $? "Failed to unmount filesystems"
 		fi
 		
-		remaining="`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts | sort -r`"
+		remaining="`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts | \
+			   sort -r | sed -e 's:/newroot::g' | grep -v mnt/livecd`"
 		[ -z "${remaining}" ] && break
 		
 		/bin/fuser -k -m ${sig} ${remaining} &>/dev/null
@@ -94,8 +100,20 @@
 	do
 		[ "${x}" = "${y}" ] && do_unmount="no"
 	done
-	
-	if [ "${do_unmount}" = "yes" -a "${x}" != "/mnt/livecd" ]
+
+	if [ "${CDBOOT}" != "" ]
+	then
+		case ${x} in
+			*mnt/cdrom*)
+				do_unmount="no"
+			;;
+			*mnt/livecd*)
+				do_unmount="no"
+			;;
+		esac
+	fi
+
+	if [ "${do_unmount}" = "yes" ]
 	then
 		umount ${x} &>/dev/null || {
 		
@@ -110,7 +128,7 @@
 eend 0
 
 # Stop LVM
-if [ -x /sbin/vgchange ] && [ -f /etc/lvmtab -o -d /etc/lvm ] && \
+if [ "${CDBOOT}" = "" ] && [ -x /sbin/vgchange ] && [ -f /etc/lvmtab -o -d /etc/lvm ] && \
    [ -d /proc/lvm  -o "`grep device-mapper /proc/misc 2>/dev/null`" ]
 then
 	ebegin "Shutting down the Logical Volume Manager"
diff -ruN rc-scripts-1.4.3.12p3/init.d/modules rc-scripts-1.4.3.12p9/init.d/modules
--- rc-scripts-1.4.3.12p3/init.d/modules	2003-08-10 21:27:16.000000000 -0400
+++ rc-scripts-1.4.3.12p9/init.d/modules	2004-01-25 02:12:55.000000000 -0500
@@ -81,11 +81,12 @@
 		eerror "ERROR:  system is missing /sbin/depmod !"
 		return 1
 	fi
-	
-	ebegin "Calculating module dependencies"
-	/sbin/modules-update &>/dev/null
-	eend $? "Failed to calculate dependencies"
-
+	if [ "${CDBOOT}" = "" ]
+	then
+		ebegin "Calculating module dependencies"
+		/sbin/modules-update &>/dev/null
+		eend $? "Failed to calculate dependencies"
+	fi
 	if [ -f /etc/modules.autoload -a ! -L /etc/modules.autoload ]
 	then
 		# Loop over every line in /etc/modules.autoload.
diff -ruN rc-scripts-1.4.3.12p3/sbin/rc rc-scripts-1.4.3.12p9/sbin/rc
--- rc-scripts-1.4.3.12p3/sbin/rc	2004-01-21 13:03:11.000000000 -0500
+++ rc-scripts-1.4.3.12p9/sbin/rc	2004-01-24 22:57:11.000000000 -0500
@@ -168,7 +168,7 @@
 	# Read off the kernel commandline to see if there's any special settings
 	# especially check to see if we need to set the  CDBOOT environment variable
 	# Note: /proc MUST be mounted
-	livecd_read_commandline
+	[ -f /sbin/livecd-functions.sh ] && livecd_read_commandline
 
 	if [ -d /sys -a "$(get_KV)" -ge "$(KV_to_int '2.6.0')" ]
 	then
@@ -418,7 +418,7 @@
 	fi
 
 	# If booting off CD, we want to update inittab before setting the runlevel
-	if [ "${CDBOOT}" != "" ]
+	if [ -f "/sbin/livecd-functions.sh" -a "${CDBOOT}" != "" ]
 	then
 		ebegin "Updating inittab"
 		livecd_fix_inittab
diff -ruN rc-scripts-1.4.3.12p3/src/awk/gendepends.awk rc-scripts-1.4.3.12p9/src/awk/gendepends.awk
--- rc-scripts-1.4.3.12p3/src/awk/gendepends.awk	2003-12-28 20:00:27.000000000 -0500
+++ rc-scripts-1.4.3.12p9/src/awk/gendepends.awk	2004-02-01 17:34:36.000000000 -0500
@@ -466,14 +466,14 @@
 		print "" >> (CACHEDTREE)
 	}
 
-	print "export RC_DEPEND_TREE" >> (CACHEDTREE)
-	print "export RC_GOT_DEPTREE_INFO=\"yes\"" >> (CACHEDTREE)
+	# Do not export these, as we want them local
+	print "RC_GOT_DEPTREE_INFO=\"yes\"" >> (CACHEDTREE)
 	print "" >> (CACHEDTREE)
 
 	if (check_provide("logger"))
-		print "export LOGGER_SERVICE=\"" get_provide("logger") "\"" >> (CACHEDTREE)
+		print "LOGGER_SERVICE=\"" get_provide("logger") "\"" >> (CACHEDTREE)
 	else
-		print "export LOGGER_SERVICE=" >> (CACHEDTREE)
+		print "LOGGER_SERVICE=" >> (CACHEDTREE)
 		
 	close(CACHEDTREE)
 }
