diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index b60eb5061730edfaf9bb13b8835c76fd5426cf52..afeea73e19dc8b08b632a76ae9ab8cd32d993e64 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -394,7 +394,15 @@ int main(int argc, char *argv[]) {
           parset.get<double>("solver.tnnmg.fixed_point_tolerance");
       for (size_t state_fpi = 1; state_fpi <= state_fpi_max; ++state_fpi) {
         stateUpdater->solve(ud);
-        stateUpdater->extractState(alpha);
+        if (state_fpi == 1)
+          stateUpdater->extractState(alpha);
+        else {
+          SingletonVectorType computed_state;
+          stateUpdater->extractState(computed_state);
+          double const damping = 0.5;
+          alpha *= damping;
+          alpha.axpy(1.0 - damping, computed_state);
+        }
 
         solveDisplacementProblem(problem_iterate, alpha);
         timeSteppingScheme->postProcess(problem_iterate);