--- a/src/interface.c
+++ b/src/interface.c
@@ -89,6 +89,10 @@
 
 interface_status_t interface_detect_beat_mii(int fd, char *iface) {
     struct ifreq ifr;
+    union {
+      caddr_t *data;
+      unsigned short *usz;
+    } ifd;
     
     if (interface_auto_up)
         interface_up(fd, iface);
@@ -103,7 +107,8 @@
         return IFSTATUS_ERR;
     }
 
-    ((unsigned short*) &ifr.ifr_data)[1] = 1;
+    ifd.data = &ifr.ifr_data;
+    *++ifd.usz = 1;
 
     if (ioctl(fd, SIOCGMIIREG, &ifr) == -1) {
         if (interface_do_message)
@@ -112,12 +117,17 @@
         return IFSTATUS_ERR;
     }
 
-    return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
+    ifd.usz += 2;
+    return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
 }
 
 interface_status_t interface_detect_beat_priv(int fd, char *iface) {
     struct ifreq ifr;
-    
+    union {
+      caddr_t *data;
+      unsigned short *usz;
+    } ifd;
+   
     if (interface_auto_up)
         interface_up(fd, iface);
     
@@ -131,7 +141,8 @@
         return IFSTATUS_ERR;
     }
 
-    ((unsigned short*) &ifr.ifr_data)[1] = 1;
+    ifd.data = &ifr.ifr_data;
+    *++ifd.usz = 1;
 
     if (ioctl(fd, SIOCDEVPRIVATE+1, &ifr) == -1) {
         if (interface_do_message)
@@ -140,7 +151,8 @@
         return IFSTATUS_ERR;
     }
 
-    return (((unsigned short*) &ifr.ifr_data)[3] & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
+    ifd.usz += 2;
+    return (*ifd.usz & 0x0004) ? IFSTATUS_UP : IFSTATUS_DOWN;
 }
 
 interface_status_t interface_detect_beat_ethtool(int fd, char *iface) {
