diff --git a/drivers/cc110x/cc110x.c b/drivers/cc110x/cc110x.c
index 557a09a04d4a839dbaa3517e20c3bdb8c6f85a2d..1ac8be015b820e068c0ad36665f82850b91dc5d6 100644
--- a/drivers/cc110x/cc110x.c
+++ b/drivers/cc110x/cc110x.c
@@ -88,10 +88,13 @@ int cc110x_setup(cc110x_t *dev, const cc110x_params_t *params)
 
     /* set default node id */
 #ifdef CPUID_LEN
-    if (CPUID_LEN>0) {
+    if (CPUID_LEN > 0) {
         char cpuid[CPUID_LEN];
         cpuid_get(cpuid);
-        cc110x_set_address(dev, (uint8_t) cpuid[CPUID_LEN-1]);
+        for (int i = 1; i < CPUID_LEN; i++) {
+            cpuid[0] ^= cpuid[i]
+        }
+        cc110x_set_address(dev, (uint8_t) cpuid[0]);
     }
 #endif