diff --git a/CMakeLists.txt b/CMakeLists.txt
index 277461ac660ed5fa53d06938a868668beeb4730f..2c27d35201b36ac3956a2d808fc893b6e047f9df 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -148,6 +148,5 @@ CONFIGURE_FILE(
 #  DESTINATION ${PYTHON_SITELIB}/dynamic_graph/sot/dyninv
 #)
 
-
 SETUP_PROJECT_FINALIZE()
 SETUP_PROJECT_CPACK()
diff --git a/kinewalk.py b/kinewalk.py
index 865b513906a833942be178fc64ccfb44f8136a2d..a9c0df407188c42d6e32c20e631ce3db07b3c1e8 100644
--- a/kinewalk.py
+++ b/kinewalk.py
@@ -227,7 +227,7 @@ featureCom = FeatureGeneric('featureCom')
 plug(dyn.com,featureCom.errorIN)
 plug(dyn.Jcom,featureCom.jacobianIN)
 featureComDes = FeatureGeneric('featureComDes')
-featureCom.sdes.value = 'featureComDes'
+featureCom.setReference('featureComDes')
 plug(comRef.ref,featureComDes.errorIN)
 featureCom.selec.value = '011'
 
diff --git a/python/unitests/kinesimple.py b/python/unitests/kinesimple.py
index 36021e5be0f9cea865537cbb6f236df72c57c1c5..adee55a4cd0a3bacfc40f04d758385626d21045a 100644
--- a/python/unitests/kinesimple.py
+++ b/python/unitests/kinesimple.py
@@ -126,7 +126,7 @@ class MetaTaskKine6d( MetaTask6d ):
         self.gain = GainAdaptive('gain'+self.name)
         self.gain.set(0.1,0.1,125e3)
     def plugEverything(self):
-        self.feature.sdes.value = self.featureDes.name
+        self.feature.setReference(self.featureDes.name)
         plug(self.dyn.signal(self.opPoint),self.feature.signal('position'))
         plug(self.dyn.signal('J'+self.opPoint),self.feature.signal('Jq'))
         self.task.add(self.feature.name)
@@ -153,7 +153,7 @@ featureCom    = FeatureGeneric('featureCom')
 featureComDes = FeatureGeneric('featureComDes')
 plug(dyn.com,featureCom.errorIN)
 plug(dyn.Jcom,featureCom.jacobianIN)
-featureCom.sdes.value = 'featureComDes'
+featureCom.setReference('featureComDes')
 featureComDes.errorIN.value = (0.0478408688115,-0.0620357207995,0.684865189311)
 
 taskCom = Task('taskCom')
@@ -180,7 +180,7 @@ taskSupport.dt.value=dt
 featurePosture    = FeatureGeneric('featurePosture')
 featurePostureDes = FeatureGeneric('featurePostureDes')
 plug(dyn.position,featurePosture.errorIN)
-featurePosture.sdes.value = 'featurePostureDes'
+featurePosture.setReference('featurePostureDes')
 featurePosture.jacobianIN.value = totuple( identity(robotDim) )
 featurePostureDes.errorIN.value = dyn.position.value
 
diff --git a/src/stack-template.t.cpp b/src/stack-template.t.cpp
index fc3c1be92dfb6fda1dbfbffe424cbfc41b47590e..aa940f66cf6361a70bea858e3eaa42c1e78ace27 100644
--- a/src/stack-template.t.cpp
+++ b/src/stack-template.t.cpp
@@ -134,12 +134,16 @@ namespace dynamicgraph
       if(! find ){ return; }
 
       StackIterator_t pos=it; pos++;
+
+      // If the task is already at the end of the stack, do nothing
+      if( stack.end()==pos ){ return; }
+
       TaskGeneric* task=*it;
       stack.erase( it );
+      // the task was the second to last one
       if( stack.end()==pos ){ stack.push_back(task); }
       else
 	{
-	  pos++;
 	  stack.insert( pos,task );
 	}
       resetReady();
diff --git a/unitTesting/CMakeLists.txt b/unitTesting/CMakeLists.txt
index 8516db1fa04cf1b49e01a86fbcc64b7692e9ed3f..d3ea34680e4e5d8c9c41cca9d7f4091f1fb77770 100644
--- a/unitTesting/CMakeLists.txt
+++ b/unitTesting/CMakeLists.txt
@@ -35,5 +35,6 @@ FOREACH(test ${tests})
     ADD_DEPENDENCIES(${EXECUTABLE_NAME} "${${test}_plugins_dependencies}")
     TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} "${${test}_plugins_dependencies}")
   ENDIF(${test}_plugins_dependencies)
+  TARGET_LINK_LIBRARIES(${EXECUTABLE_NAME} "-lsoth")
 
 ENDFOREACH(test)