--- a/soft-interface.c.ORG 2012-09-06 10:07:27.409364708 +0200 +++ b/soft-interface.c 2012-09-06 10:10:19.000000000 +0200 @@ -108,10 +108,12 @@ if (atomic_read(&bat_priv->mesh_state) == BATADV_MESH_ACTIVE) { batadv_tt_local_remove(bat_priv, dev->dev_addr, "mac address changed", false); + memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); batadv_tt_local_add(dev, addr->sa_data, BATADV_NULL_IFINDEX); + }else{ + memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); } - - memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + dev->addr_assign_type &= ~NET_ADDR_RANDOM; return 0; }