diff --git a/src/solve_transition.cpp b/src/solve_transition.cpp
index 514ca8f9f59c65fc0c2c287c92957094aa633429..5eeb5add81807407d1404bcdd43a71d02666bdef 100644
--- a/src/solve_transition.cpp
+++ b/src/solve_transition.cpp
@@ -163,11 +163,11 @@ long int assignStabilityConstraints(const ProblemData& pData, MatrixXX& A, Vecto
         // add stability constraints :
         assignStabilityConstraintsForTimeStep(mH, h, wps_w[id_step], dimH, id_rows, A, b, g);
         // check if we are going to switch phases :
-        for(std::size_t i = 0 ; i < (stepIdForPhase.size()-1) ; ++i)
+        for(std::vector<int>::const_iterator it_switch = stepIdForPhase.begin() ; it_switch != (stepIdForPhase.end()-1) ; ++it_switch)
         {
-            if((int)id_step == stepIdForPhase[i])
+            if((int)id_step == (*it_switch))
             {
-                id_phase=i+1;
+                id_phase++;
                 switchContactPhase(pData, A,b, mH, h,
                             wps_w[id_step], phase, id_phase, id_rows, dimH);
             }