diff -Naurz lfs-bootscripts-20110803.orig/lfs/init.d/rc lfs-bootscripts-20110803/lfs/init.d/rc
--- lfs-bootscripts-20110803.orig/lfs/init.d/rc
+++ lfs-bootscripts-20110803/lfs/init.d/rc
@@ -61,6 +61,8 @@
    exit 1
 fi
 
+export IN_BOOT=1
+
 previous=${PREVLEVEL}
 [ "${previous}" = "" ] && previous=N
 
@@ -100,8 +102,6 @@
    done
 fi
 
-[ "${previous}" = "N" ] && IN_BOOT=1
-
 #Start all functions in this runlevel
 for i in $( ls -v /etc/rc.d/rc${runlevel}.d/S* 2> /dev/null)
 do
diff -Naurz lfs-bootscripts-20110803.orig/lfs/sysconfig/network-devices/ifdown lfs-bootscripts-20110803/lfs/sysconfig/network-devices/ifdown
--- lfs-bootscripts-20110803.orig/lfs/sysconfig/network-devices/ifdown
+++ lfs-bootscripts-20110803/lfs/sysconfig/network-devices/ifdown
@@ -37,6 +37,11 @@
    exit 1
 fi
 
+if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "yes" ]; then
+   echo_skipped
+   exit 0
+fi
+
 # This will run the service script, if SERVICE is set
 if [ -n "${SERVICE}" -a -x "/lib/boot/${SERVICE}" ]; then
    if ip link show ${IFACE} > /dev/null 2>&1; then
@@ -57,9 +62,11 @@
 
 if [ -n "${link_status}" ]; then
    if echo "${link_status}" | grep -q UP; then
-      boot_mesg "Bringing down the ${IFACE} interface..."
-      ip link set ${IFACE} down
-      evaluate_retval
+      if ! ip addr show ${IFACE}|grep -q inet; then
+         boot_mesg "Bringing down the ${IFACE} interface..."
+         ip link set ${IFACE} down
+         evaluate_retval
+      fi
    fi
 fi
 
