diff --git a/include/sot/core/op-point-modifier.hh b/include/sot/core/op-point-modifier.hh
index 5d83a0cfb553061cd1801ae7c9458d4509fbe719..b72b1e0c79ec52cfae34fb706bc79dff38e0fab6 100644
--- a/include/sot/core/op-point-modifier.hh
+++ b/include/sot/core/op-point-modifier.hh
@@ -78,9 +78,9 @@ public:
 
   dg::Matrix& jacobianSOUT_function( dg::Matrix& res,const int& time );
   MatrixHomogeneous& positionSOUT_function( MatrixHomogeneous& res,const int& time );
-  void setTransformation( const MatrixHomogeneous& tr );
+  void setTransformation( const Eigen::Matrix4d& tr );
   void setTransformationBySignalName( std::istringstream& cmdArgs );
-  const MatrixHomogeneous& getTransformation( void );
+  const Eigen::Matrix4d& getTransformation( void );
 
   virtual void commandLine( const std::string& cmdLine,
 			    std::istringstream& cmdArgs,
diff --git a/src/math/op-point-modifier.cpp b/src/math/op-point-modifier.cpp
index 88655a4730d18d80532d22b8c99d06cd7367ea28..8c006d3798cac7e795e1c8efa958373fa64ecc65 100644
--- a/src/math/op-point-modifier.cpp
+++ b/src/math/op-point-modifier.cpp
@@ -55,14 +55,14 @@ OpPointModifier( const std::string& name )
   sotDEBUGIN(15);
 
   signalRegistration( jacobianSIN<<positionSIN<<jacobianSOUT<<positionSOUT );
-
   {
+    
     using namespace dynamicgraph::command;
     addCommand("getTransformation",
-	       makeDirectGetter(*this,&(dynamicgraph::Matrix&)transformation,
+	       makeDirectGetter(*this,&transformation.matrix(),
 				docDirectGetter("transformation","matrix 4x4 homo")));
     addCommand("setTransformation",
-	       makeDirectSetter(*this, &(dynamicgraph::Matrix&)transformation,
+	       makeDirectSetter(*this, &transformation.matrix(),
 				docDirectSetter("dimension","matrix 4x4 homo")));
     addCommand("getEndEffector",
 	       makeDirectGetter(*this,&isEndEffector,
@@ -135,11 +135,11 @@ OpPointModifier::positionSOUT_function( MatrixHomogeneous& res,const int& iter )
 }
 
 void
-OpPointModifier::setTransformation( const MatrixHomogeneous& tr )
-{ transformation = tr; }
-const MatrixHomogeneous&
+OpPointModifier::setTransformation( const Eigen::Matrix4d& tr )
+{ transformation.matrix() = tr; }
+const Eigen::Matrix4d&
 OpPointModifier::getTransformation( void )
-{ return transformation; }
+{ return transformation.matrix(); }
 
 
 /* The following function needs an access to a specific signal via
@@ -152,8 +152,8 @@ OpPointModifier::getTransformation( void )
 void
 OpPointModifier::setTransformationBySignalName( std::istringstream& cmdArgs )
 {
-  Signal< MatrixHomogeneous,int > &sig
-    = dynamic_cast< Signal< MatrixHomogeneous,int >& >
+  Signal< Eigen::Matrix4d,int > &sig
+    = dynamic_cast< Signal< Eigen::Matrix4d,int >& >
     (PoolStorage::getInstance()->getSignal( cmdArgs ));
   setTransformation(sig.accessCopy());
 }
@@ -166,7 +166,7 @@ commandLine( const std::string& cmdLine,
 {
   if( cmdLine == "transfo" )
     {
-      MatrixHomogeneous tr;
+      Eigen::Matrix4d tr;
       cmdArgs >> tr;
       setTransformation(tr);
     }