  {\em Reoptimization} is a setting in which we are given an (near) optimal
solution of a problem instance and a local modification that slightly changes
the instance. The main goal is that of finding an (near) optimal solution of
the modified instance.
  We investigate one of the most studied scenarios in reoptimization known as
{\em Steiner tree reoptimization}. Steiner tree reoptimization is a collection
of strongly NP-hard optimization problems that are defined on top of the
classical Steiner tree problem and for which several constant-factor
approximation algorithms have been designed in the last decade. In this paper
we improve upon all these results by developing a novel technique that allows
us to design {\em polynomial-time approximation schemes}. Remarkably, prior to
this paper, no approximation algorithm better than recomputing a solution from
scratch was known for the elusive scenario in which the cost of a single edge
decreases. Our results are best possible since none of the problems addressed
in this paper admits a fully polynomial-time approximation scheme, unless P=NP.
