diff --git a/src/problem-solver.cc b/src/problem-solver.cc
index 75564fbc81d146874dd29d72ca50949b2e1fafb8..1e6cf1bc654d0a70d8e574403329268a6ef2530e 100644
--- a/src/problem-solver.cc
+++ b/src/problem-solver.cc
@@ -193,9 +193,12 @@ namespace hpp {
 
     void ProblemSolver::resetProblem ()
     {
-      if (problem_)
-        delete (problem_);
-      initializeProblem (new Problem (robot_));
+      ProblemPtr_t p (new Problem (robot_));
+      if (problem_) {
+        p->parameters = problem_->parameters;
+	delete problem_;
+      }
+      initializeProblem (p);
     }
 
     void ProblemSolver::initializeProblem (ProblemPtr_t problem)