We present an improved algorithm for solving symmetrically diagonally dominant linear systems. On input of an n × n symmetric diagonally dominant matrix A with m non-zero entries and a vector b such that Ax = b for some (unknown) vectorx, our algorithm computes a vector x such that ||x −x||A < ||x||A 1 in timẽThe solver utilizes in a standard way a 'preconditioning' chain of progressively sparser graphs. To claim the faster running time we make a two-fold improvement in the algorithm for constructing the chain. The new chain exploits previously unknown properties of the graph sparsification algorithm given in [Koutis,Miller,Peng, FOCS 2010], allowing for stronger preconditioning properties. We also present an algorithm of independent interest that constructs nearly-tight low-stretch spanning trees in timeÕ(m log n), a factor of O(log n) faster than the algorithm in [Abraham,Bartal,Neiman, FOCS 2008]. This speedup directly reflects on the construction time of the preconditioning chain.