diff --git a/sot-core3/Makefile b/sot-core3/Makefile
index 10174136ce916d8a7c168f93a9721e29f63c3688..1af85b280b0024903cceaa1224c352f88a421284 100644
--- a/sot-core3/Makefile
+++ b/sot-core3/Makefile
@@ -5,6 +5,7 @@
 PKGNAME=		sot-core-${VERSION}
 DISTNAME=		sot-core-${VERSION}
 VERSION=		3.0.0
+PKGREVISION=		1
 
 MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=sot-core/}
 MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}/proyan/sot-core
@@ -29,6 +30,7 @@ CMAKE_ARGS+=		-DCMAKE_INSTALL_LIBDIR=lib
 CONFIGURE_DIRS=		_build
 CMAKE_ARG_PATH=		..
 
+PATCH_STRIP?=		-p1
 include ../../devel/boost-headers/depend.mk
 include ../../devel/boost-libs/depend.mk
 include ../../math/eigen3/depend.mk
diff --git a/sot-core3/distinfo b/sot-core3/distinfo
index 2e42e08861620352e94c1b44a67da0a3246b8e12..5a926cf6325dc3f62d8686e6c08c4ed4562149c3 100644
--- a/sot-core3/distinfo
+++ b/sot-core3/distinfo
@@ -1,3 +1,4 @@
 SHA1 (sot-core-3.0.0.tar.gz) = e4968c00d55526c69bbcef9a472bcca9b35ae518
 RMD160 (sot-core-3.0.0.tar.gz) = 9b7dc959a0550ab765b9f1ae5e8088c85653c0e3
 Size (sot-core-3.0.0.tar.gz) = 365510 bytes
+SHA1 (patch-aa) = c897834d6bc5aa43d27ca0b2dc720136637b48b3
diff --git a/sot-core3/patches/patch-aa b/sot-core3/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..857d85c184c63353281585136101e26ae9068ed3
--- /dev/null
+++ b/sot-core3/patches/patch-aa
@@ -0,0 +1,74 @@
+diff --git a/include/sot/core/op-point-modifier.hh b/include/sot/core/op-point-modifier.hh
+index 5d83a0c..b72b1e0 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 88655a4..8c006d3 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);
+     }