diff --git a/include/sot-dyninv/solver-op-space.h b/include/sot-dyninv/solver-op-space.h
index cad5f69db7db280b3059be21c6fd4046d507f015..8a5c9b0e00fd7dc3e0a85b6285b500b1f5dd7bdf 100644
--- a/include/sot-dyninv/solver-op-space.h
+++ b/include/sot-dyninv/solver-op-space.h
@@ -118,7 +118,7 @@ namespace sot {
 			 dynamicgraph::Signal<ml::Matrix,int> * JdotSignal,
 			 dynamicgraph::Signal<ml::Vector,int> * corrSignal,
 			 dynamicgraph::Signal<ml::Matrix,int> * contactPointsSignal );
-	void addContactFromTask( const std::string & name );
+	void addContactFromTask( const std::string & taskName, const std::string & contactName );
 	void removeContact( const std::string & name );
 	void dispContacts( std::ostream& os ) const;
 
diff --git a/src/solver-op-space.cpp b/src/solver-op-space.cpp
index 12e7a55b0054019d374732e6c5aca974d032b621..185d610e2ab2cf53f6e82e0321cc1601475134ce 100644
--- a/src/solver-op-space.cpp
+++ b/src/solver-op-space.cpp
@@ -89,9 +89,9 @@ namespace sot
 				  docCommandVoid1("create the contact signals, unpluged.",
 						  "string")));
       addCommand("addContactFromTask",
-		 makeCommandVoid1(*this,&SolverOpSpace::addContactFromTask,
-				  docCommandVoid1("Add a contact from the named task. Remmeber to plug __p.",
-						  "string")));
+		 makeCommandVoid2(*this,&SolverOpSpace::addContactFromTask,
+				  docCommandVoid2("Add a contact from the named task. Remmeber to plug __p.",
+						  "string(task name)","string (contact name)")));
       addCommand("rmContact",
 		 makeCommandVoid1(*this,&SolverOpSpace::removeContact,
 				  docCommandVoid1("remove the contact named in arguments.",
@@ -153,11 +153,11 @@ namespace sot
     }
 
     void SolverOpSpace::
-    addContactFromTask( const std::string & name )
+    addContactFromTask( const std::string & taskName,const std::string & contactName )
     {
       using namespace dynamicgraph;
 
-      TaskDynPD & task = dynamic_cast<TaskDynPD&> ( g_pool.getEntity( name ) );
+      TaskDynPD & task = dynamic_cast<TaskDynPD&> ( g_pool.getEntity( taskName ) );
       assert( task.getFeatureList().size() == 1 );
       BOOST_FOREACH( FeatureAbstract* fptr, task.getFeatureList() )
 	{
@@ -167,7 +167,7 @@ namespace sot
 	  f6->servoCurrentPosition();
 	  f6->FeatureAbstract::selectionSIN = true;
 	}
-      addContact( name, &task.jacobianSOUT, &task.JdotSOUT,&task.taskVectorSOUT, NULL );
+      addContact( contactName, &task.jacobianSOUT, &task.JdotSOUT,&task.taskVectorSOUT, NULL );
     }
 
     void SolverOpSpace::
@@ -744,7 +744,7 @@ namespace sot
 	  if( cmdArgs.good() )
 	    {
 	      std::string name; cmdArgs >> name;
-	      addContactFromTask( name );
+	      addContactFromTask( name,name );
 	    }
 	  else { os << "!! A name must be specified. " << std::endl; }
 	}