diff --git a/drivers/cc110x/cc110x-netdev2.c b/drivers/cc110x/cc110x-netdev2.c
index 12531724ae4ad98282a127d9178549f127439518..98b4f4f79b2836ec82538aaf3932693e474dcb63 100644
--- a/drivers/cc110x/cc110x-netdev2.c
+++ b/drivers/cc110x/cc110x-netdev2.c
@@ -70,30 +70,18 @@ static int _recv(netdev2_t *dev, char* buf, int len, void *info)
 
 static inline int _get_iid(netdev2_t *netdev, eui64_t *value, size_t max_len)
 {
-    if (max_len < sizeof(eui64_t)) {
-        return -EOVERFLOW;
-    }
-
+    cc110x_t *cc110x = &((netdev2_cc110x_t*) dev)->cc110x;
     uint8_t *eui64 = (uint8_t*) value;
-#ifdef CPUID_LEN
-    int n = (CPUID_LEN < sizeof(eui64_t))
-        ? CPUID_LEN
-        : sizeof(eui64_t);
 
-    char cpuid[CPUID_LEN];
-    cpuid_get(cpuid);
-
-    memcpy(eui64 + 8 - n, cpuid, n);
-
-#else
-    for (int i = 0; i < 8; i++) {
-        eui64[i] = i;
+    if (max_len < sizeof(eui64_t)) {
+        return -EOVERFLOW;
     }
-#endif
 
-    /* make sure we mark the address as non-multicast and not globally unique */
-    eui64[0] &= ~(0x01);
-    eui64[0] |= 0x02;
+    /* make address compatible to https://tools.ietf.org/html/rfc6282#section-3.2.2*/
+    memset(eui64, 0, sizeof(eui64_t));
+    eui64[3] = 0xff;
+    eui64[4] = 0xfe;
+    eui64[7] = cc110x->radio_address;
 
     return sizeof(eui64_t);
 }