We present an improved algorithm for solving symmetrically diagonally dominant linear systems. On input of an n x n symmetric diagonally dominant matrix A with m non-zero entries and a vector b such that Ax̄ = b for some (unknown) vector x̄, our algorithm computes a vector x such that ∥x-x̄∥ A<ε∥x̄∥ A in time. Õ (m log n log (1/ε)). 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 Õ(mlog 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.