diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index c9f603f..62bc9d6 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -9,6 +9,7 @@
 #include "libbb.h"
 
 #include <linux/if.h>
+#include <linux/mii.h>
 #include <linux/ethtool.h>
 #include <net/ethernet.h>
 #include <linux/netlink.h>
@@ -310,6 +311,7 @@
 static smallint detect_link_mii(void)
 {
 	struct ifreq ifreq;
+	struct mii_ioctl_data *mii = (void *)&ifreq.ifr_data;
 
 	set_ifreq_to_ifname(&ifreq);
 
@@ -318,20 +320,20 @@
 		return IFSTATUS_ERR;
 	}
 
-	((unsigned short*)&ifreq.ifr_data)[1] = 1;
+	mii->reg_num = 1;
 
 	if (network_ioctl(SIOCGMIIREG, &ifreq) < 0) {
 		bb_perror_msg("SIOCGMIIREG failed");
 		return IFSTATUS_ERR;
 	}
 
-	return (((unsigned short*)&ifreq.ifr_data)[3] & 0x0004) ?
-		IFSTATUS_UP : IFSTATUS_DOWN;
+	return (mii->val_out & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
 }
 
 static smallint detect_link_priv(void)
 {
 	struct ifreq ifreq;
+	struct mii_ioctl_data *mii = (void *)&ifreq.ifr_data;
 
 	set_ifreq_to_ifname(&ifreq);
 
@@ -340,15 +342,14 @@
 		return IFSTATUS_ERR;
 	}
 
-	((unsigned short*) &ifreq.ifr_data)[1] = 1;
+	mii->reg_num = 1;
 
 	if (network_ioctl(SIOCDEVPRIVATE+1, &ifreq) < 0) {
 		bb_perror_msg("SIOCDEVPRIVATE+1 failed");
 		return IFSTATUS_ERR;
 	}
 
-	return (((unsigned short*)&ifreq.ifr_data)[3] & 0x0004) ?
-		IFSTATUS_UP : IFSTATUS_DOWN;
+	return (mii->val_out & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
 }
 
 static smallint detect_link_ethtool(void)
@@ -591,6 +592,7 @@
 	return fd;
 }
 
+#if ENABLE_FEATURE_PIDFILE
 static NOINLINE pid_t read_pid(const char *filename)
 {
 	int len;
@@ -604,6 +606,7 @@
 	}
 	return 0;
 }
+#endif
 
 int ifplugd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int ifplugd_main(int argc UNUSED_PARAM, char **argv)
