diff --git a/src/angle-axis.hpp b/src/angle-axis.hpp
index 8048a38ac54453021a87f50c2f4fbfed36ea7f34..127c8ce96077e031166944331cad6074571aa11d 100644
--- a/src/angle-axis.hpp
+++ b/src/angle-axis.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014, Nicolas Mansard, LAAS-CNRS
+ * Copyright 2014-2018, Nicolas Mansard, Justin Carpentier, LAAS-CNRS
  *
  * This file is part of eigenpy.
  * eigenpy is free software: you can redistribute it and/or
@@ -21,6 +21,8 @@
 #include <Eigen/Core>
 #include <Eigen/Geometry>
 
+#include "eigenpy/registration.hpp"
+
 namespace eigenpy
 {
 
@@ -112,6 +114,8 @@ namespace eigenpy
 
     static void expose()
     {
+      if(check_registration<AngleAxis>()) return;
+      
       bp::class_<AngleAxis>("AngleAxis",
                             "AngleAxis representation of rotations.\n\n",
                             bp::no_init)
diff --git a/src/quaternion.hpp b/src/quaternion.hpp
index f852483091fb4110a732cbd974a7b8be4e0c1063..a5945b0777b24a0f60dd7894b2744b08f0b66bd1 100644
--- a/src/quaternion.hpp
+++ b/src/quaternion.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014, Nicolas Mansard, LAAS-CNRS
+ * Copyright 2014-2018, Nicolas Mansard, Justin Carpentier, LAAS-CNRS
  *
  * This file is part of eigenpy.
  * eigenpy is free software: you can redistribute it and/or
@@ -21,6 +21,7 @@
 #include <Eigen/Geometry>
 
 #include "eigenpy/exception.hpp"
+#include "eigenpy/registration.hpp"
 
 namespace eigenpy
 {
@@ -213,6 +214,8 @@ namespace eigenpy
 
     static void expose()
     {
+      if(check_registration<Quaternion>()) return;
+      
       bp::class_<Quaternion>("Quaternion",
                              "Quaternion representing rotation.\n\n"
                              "Supported operations "