Let G = (V,E) be a n-vertex connected graph with positive edge weights, and let t > 1 be a real constant. A subgraph G' is a t-spanner if for all u,v ∊ V, the weight of the shortest path between u and v in G' is at most t times the weight of the corresponding shortest path in G. We design an O(n log 2 n) time algorithm which, given a set V of n points in k-dimensional space (for any fixed k), and any real constant t > 1, produces a t-spanner of the complete Euclidean graph of V. This algorithm retains the spirit of a recent O(n3 log n) time greedy algorithm which produces t-spanners; we use graph clustering techniques to achieve a more efficient implementation. Our spanners have O(n) edges and weight O(1)· wt(MST), which is similar to the size and weight of spanners constructed by the greedy algorithm. The constants implicit in the O-notation depend upon t and k.