diff --git a/elements/ramdisk/binary-deps.d/ramdisk b/elements/ramdisk/binary-deps.d/ramdisk
index e56a617de..ddd494977 100644
--- a/elements/ramdisk/binary-deps.d/ramdisk
+++ b/elements/ramdisk/binary-deps.d/ramdisk
@@ -1,2 +1,3 @@
 dhclient
+ip
 busybox
diff --git a/lib/ramdisk-functions b/lib/ramdisk-functions
index b472ceb86..a1e02f47b 100644
--- a/lib/ramdisk-functions
+++ b/lib/ramdisk-functions
@@ -52,8 +52,18 @@ function create_ramdisk_base () {
     cp -a "$LIB_UDEV/firmware" "$TMP_MOUNT_PATH/lib/udev"
   fi
 
-  # cjk adding for hwdiscovery support
-  cp "/sbin/dhclient-script" "$TMP_MOUNT_PATH/sbin"
+  # cjk adding dhclient for hwdiscovery support
+  # dhclient scripts on some distros appear in different places, copy any we find
+  for FILE in /sbin/dhclient-script /usr/sbin/dhclient-script /etc/sysconfig/network-scripts/* /etc/rc.d/init.d/functions /etc/init.d/functions ; do
+    if [ -f $FILE ] ; then
+      mkdir -p $(dirname $TMP_MOUNT_PATH/$FILE)
+      cp $FILE $TMP_MOUNT_PATH/$FILE
+    fi
+  done
+  # /var/lib/dhclient is a directory on Fedora
+  if [ -d "/var/lib/dhclient" ] ; then
+    mkdir -p "$TMP_MOUNT_PATH/var/lib/dhclient"
+  fi
 
   mkdir -p "$TMP_MOUNT_PATH/etc/modprobe.d"
   echo "blacklist evbug" > "$TMP_MOUNT_PATH/etc/modprobe.d/blacklist.conf"
@@ -143,7 +153,8 @@ function populate_lib () {
   for i in "$BUSYBOX" bash lsmod modprobe udevadm \
            wget reboot shutdown $UDEVD $UDEV_FIRMWARE \
            $(cat /etc/dib_binary_deps) ; do
-    if busybox_list | grep "^$i\$" >/dev/null; then
+    # Don't take the ip command from busybox, its missing some features
+    if busybox_list | grep -v "^ip$" | grep "^$i\$" >/dev/null; then
       continue
     fi
     path=`which $i 2>/dev/null` || path=$i