Recently, extensive research efforts have been devoted to the design of efficient clustering algorithms to divide all the nodes in a mobile ad hoc network into multiple clusters to form a clustered architecture. A clustered architecture is more stable if it can hold for a longer period of time. In a clustered architecture, due to node mobility, a node may depart from its original cluster and enter another cluster dynamically. Such a change may cause the clustered architecture to be reconfigured, leading to the instability of the network. Frequent information exchanges among the participating nodes and re-computation of clusters involve high communication and computation overheads. Therefore, it is obvious that a more stable clustered architecture will directly lead to the performance improvement of the whole network. In this paper, we propose an efficient clustering algorithm that can establish a more stable clustered architecture by keeping a node with many weak links from being selected as a clusterhead. Computer simulations show that the clustered architectures generated by our clustering algorithm are more stable than those generated by other clustering algorithms.