diff --git a/py-sot-core-v3/Makefile b/py-sot-core-v3/Makefile
index d83af7789d7284e8d1805a543a4051a78224d199..8f60cf5218d9dfe48a91a8f7d3496c317d43742a 100644
--- a/py-sot-core-v3/Makefile
+++ b/py-sot-core-v3/Makefile
@@ -5,6 +5,7 @@
 ORG=			stack-of-tasks
 NAME=			sot-core
 VERSION=		3.2.0
+PKGREVISION=		1
 
 DISTNAME=		${NAME}-${VERSION}
 PKGNAME=		${PKGTAG.python-}${NAME}-v3-${VERSION}
diff --git a/py-sot-core-v3/distinfo b/py-sot-core-v3/distinfo
index f35513dd9fcc770662529fbedc236880ceba1d29..6028d8e1fd35aafc53ada82ecccc2bba6ff6a63f 100644
--- a/py-sot-core-v3/distinfo
+++ b/py-sot-core-v3/distinfo
@@ -1,3 +1,4 @@
 SHA1 (sot-core-3.2.0.tar.gz) = fdba4a6febb240904872a519de9a613f44645d84
 RMD160 (sot-core-3.2.0.tar.gz) = ce5f4378feff289536b06e269750243ae2a1d3b7
 Size (sot-core-3.2.0.tar.gz) = 1070131 bytes
+SHA1 (patch-aa) = 963ff7b9884339a9a92f774cb626ae5c2ffb7bdd
diff --git a/py-sot-core-v3/patches/patch-aa b/py-sot-core-v3/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..f692fbcfefab6c08d4fa3971ba96cc6f419e87d1
--- /dev/null
+++ b/py-sot-core-v3/patches/patch-aa
@@ -0,0 +1,81 @@
+--- src/CMakeLists.txt
++++ src/CMakeLists.txt
+@@ -232,7 +232,9 @@ FOREACH(plugin ${plugins})
+ ENDFOREACH(plugin)
+ 
+ IF(BUILD_PYTHON_INTERFACE)
+-  DYNAMIC_GRAPH_PYTHON_MODULE("sot/core" ${SOTCORE_LIB_NAME} wrap)
++  SET(NO_INSTALL_OF_INIT_PY 0)
++  DYNAMIC_GRAPH_PYTHON_MODULE("sot/core" ${SOTCORE_LIB_NAME} wrap
++    ${NO_INSTALL_OF_INIT_PY})
+ 
+   # Install empty __init__.py files in intermediate directories.
+   INSTALL(FILES
+diff --git a/python.cmake b/python.cmake
+index 4683449..e759c13 100644
+--- cmake/python.cmake
++++ cmake/python.cmake
+@@ -94,7 +94,7 @@ ENDMACRO(FINDPYTHON)
+ 
+ 
+ #.rst:
+-# .. command:: DYNAMIC_GRAPH_PYTHON_MODULE ( SUBMODULENAME LIBRARYNAME TARGETNAME )
++# .. command:: DYNAMIC_GRAPH_PYTHON_MODULE ( SUBMODULENAME LIBRARYNAME TARGETNAME INSTALL_INIT_PY=1)
+ #
+ #   Add a python submodule to dynamic_graph
+ #  
+@@ -105,6 +105,9 @@ ENDMACRO(FINDPYTHON)
+ #   :param TARGETNAME:     name of the target: should be different for several
+ #                   calls to the macro.
+ #
++#   :param INSTALL_INIT_PY: if set to 1 install and generated a __init__.py file.
++#                   Set to 1 by default.
++#
+ #  .. note::
+ #    Before calling this macro, set variable NEW_ENTITY_CLASS as
+ #    the list of new Entity types that you want to be bound.
+@@ -113,7 +116,15 @@ ENDMACRO(FINDPYTHON)
+ #
+ MACRO(DYNAMIC_GRAPH_PYTHON_MODULE SUBMODULENAME LIBRARYNAME TARGETNAME)
+ 
++  # By default the __init__.py file is installed.
++  SET(INSTALL_INIT_PY 1)
+ 
++  set(extra_macro_args ${ARGN})
++  list(LENGTH extra_macro_args num_extra_args)
++  if( ${num_extra_args} GREATER 0)
++    list(GET extra_macro_args 0 INSTALL_INIT_PY)
++  endif(${num_extra_args} GREATER 0)
++  
+   IF(NOT DEFINED PYTHONLIBS_FOUND)
+     FINDPYTHON()
+   ELSEIF(NOT ${PYTHONLIBS_FOUND} STREQUAL "TRUE")
+@@ -158,15 +169,20 @@ MACRO(DYNAMIC_GRAPH_PYTHON_MODULE SUBMODULENAME LIBRARYNAME TARGETNAME)
+     SET(ENTITY_CLASS_LIST "${ENTITY_CLASS_LIST}${ENTITY}('')\n")
+   ENDFOREACH(ENTITY ${NEW_ENTITY_CLASS})
+ 
+-  CONFIGURE_FILE(
+-    ${PROJECT_SOURCE_DIR}/cmake/dynamic_graph/submodule/__init__.py.cmake
+-    ${PROJECT_BINARY_DIR}/src/dynamic_graph/${SUBMODULENAME}/__init__.py
+-    )
++  # Install if INSTALL_INIT_PY is set to 1
++  IF (${INSTALL_INIT_PY} EQUAL 1)
+ 
+-  INSTALL(
+-    FILES ${PROJECT_BINARY_DIR}/src/dynamic_graph/${SUBMODULENAME}/__init__.py
+-    DESTINATION ${PYTHON_INSTALL_DIR}
+-    )
++    CONFIGURE_FILE(
++      ${PROJECT_SOURCE_DIR}/cmake/dynamic_graph/submodule/__init__.py.cmake
++      ${PROJECT_BINARY_DIR}/src/dynamic_graph/${SUBMODULENAME}/__init__.py
++      )
++
++    INSTALL(
++      FILES ${PROJECT_BINARY_DIR}/src/dynamic_graph/${SUBMODULENAME}/__init__.py
++      DESTINATION ${PYTHON_INSTALL_DIR}
++      )
++    
++  ENDIF(${INSTALL_INIT_PY} EQUAL 1)
+ 
+ ENDMACRO(DYNAMIC_GRAPH_PYTHON_MODULE SUBMODULENAME)
+