diff --git a/scripts/live b/scripts/live
index f87919d..6dc9d53 100755
--- a/scripts/live
+++ b/scripts/live
@@ -58,6 +58,11 @@ Arguments ()
 				export NOACCESSIBILITY NOFASTBOOT NOFSTAB NONETWORKING
 				;;
 
+			BOOTIF=*)
+				BOOTIF="${ARGUMENT#BOOTIF=01-}"
+				export BOOTIF
+				;;
+
 			access=*)
 				ACCESS="${ARGUMENT#access=}"
 				export ACCESS
@@ -580,55 +585,25 @@ do_netsetup ()
 	udevadm trigger
 	udevadm settle
 
-	if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && \
-	   [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ]
-	then
-
-	# if ethdevice was not specified on the kernel command line
-	# make sure we try to get a working network configuration
-	# for *every* present network device (except for loopback of course)
-	if [ -z "$ETHDEVICE" ] ; then
-		echo "If you want to boot from a specific device use bootoption ethdevice=..."
-		for device in /sys/class/net/*; do
-			dev=${device##*/} ;
-			if [ "$dev" != "lo" ] ; then
-				ETHDEVICE="$ETHDEVICE $dev"
+	if [ -n "$BOOTIF" ]; then
+	  echo 'Using BOOTIF, make sure "IPAPPEND 2" exists is your PXE stanza - ksalman 20110831'
+		BOOTIF=${BOOTIF//-/:}
+		for interface in /sys/class/net/*; do
+			if grep -q "${BOOTIF}" "${interface}/address"; then
+				INTERFACE=${interface#/sys/class/net/}
+				break
 			fi
 		done
-	fi
-
-	# split args of ethdevice=eth0,eth1 into "eth0 eth1"
-	for device in $(echo $ETHDEVICE | sed 's/,/ /g') ; do
-		devlist="$devlist $device"
-	done
-
-	[ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15
-	echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration."
-
-	# this is tricky (and ugly) because ipconfig sometimes just hangs/runs into
-	# an endless loop; iff execution fails give it two further tries, that's
-	# why we use '$devlist $devlist $devlist' for the other for loop
-	for dev in $devlist $devlist $devlist ; do
-		echo "Executing ipconfig -t $ETHDEV_TIMEOUT $dev"
-		ipconfig -t "$ETHDEV_TIMEOUT" $dev | tee -a /netboot.config &
-		jobid=$!
-		sleep "$ETHDEV_TIMEOUT" ; sleep 1
-		if [ -r /proc/"$jobid"/status ] ; then
-			echo "Killing job $jobid for device $dev as ipconfig ran into recursion..."
-			kill -9 $jobid
-		fi
-
-		# if configuration of device worked we should have an assigned
-		# IP address, iff so let's use the according as $DEVICE for later usage
-		# simple and primitive approach which seems to work fine
-		if ifconfig $dev | grep -q 'inet.*addr:' ; then
-			export DEVICE="$dev"
-			break
+		if [ -n "$INTERFACE" ]; then
+			echo "Found BOOTIF interface $INTERFACE"
+			echo "Attempting to get a lease.."
+			ipconfig ${INTERFACE} | tee /netboot.config
+		else
+			echo "Could not identify interface, even though we had MAC address from BOOTIF"
 		fi
-	done
-
 	else
-	ipconfig ${DEVICE} | tee /netboot.config
+		echo "No BOOTIF found on /proc/cmdline, which is cat'ed below"
+		cat /proc/cmdline
 	fi
 
 	# source relevant ipconfig output
