diff --git a/sys/include/net/eui48.h b/sys/include/net/eui48.h
index 02c7a3f9202d3410e0979cf30ccfeeccc77c5389..3bc7ad5aaea6d1b9dad8c521268346ce69f0fb46 100644
--- a/sys/include/net/eui48.h
+++ b/sys/include/net/eui48.h
@@ -68,14 +68,8 @@ static inline void eui48_to_eui64(eui64_t *eui64, const eui48_t *addr)
  */
 static inline void eui48_to_ipv6_iid(eui64_t *iid, const eui48_t *addr)
 {
-    iid->uint8[0] = addr->uint8[0] ^ 0x02;
-    iid->uint8[1] = addr->uint8[1];
-    iid->uint8[2] = addr->uint8[2];
-    iid->uint8[3] = 0xff;
-    iid->uint8[4] = 0xfe;
-    iid->uint8[5] = addr->uint8[3];
-    iid->uint8[6] = addr->uint8[4];
-    iid->uint8[7] = addr->uint8[5];
+    eui48_to_eui64(iid, addr);
+    iid->uint8[0] ^= 0x02;
 }
 
 /**