Abstract. Wireless Ad-hoc networks are distributed systems that often reside in error-prone environments. Self-stabilization lets the system recover autonomously from an arbitrary state, making the system recover from errors and temporarily broken assumptions. Clustering nodes within ad-hoc networks can help in many ways like forming backbones, facilitating routing, improving scaling, aggregating information and saving power. A (k,r)-clustering assigns cluster heads so that exists k cluster heads within r communication hops for all nodes in the network while trying to minimize the total number of cluster heads. We present the first self-stabilizing distributed (k,r)-clustering algorithm. The algorithm uses synchronous communication rounds and uses multiple paths to different cluster heads for providing improved security, availability and fault tolerance. From any starting configuration the algorithm quickly assigns enough cluster heads and stabilizes towards a local minimum using a ran...