diff --git a/src/solvers/BasicPreconditioners.hpp b/src/solvers/BasicPreconditioners.hpp
index c3a82634c216b5b653705e5c9db123486ff4b977..92a9af5cbbe95272e062f088fb86c46955e58266 100644
--- a/src/solvers/BasicPreconditioners.hpp
+++ b/src/solvers/BasicPreconditioners.hpp
@@ -39,8 +39,10 @@ namespace eigenpy
       cl
       .def(bp::init<>("Default constructor"))
       .def(bp::init<MatrixType>(bp::arg("A"),"Initialize the preconditioner with matrix A for further Az=b solving."))
+#if EIGEN_VERSION_AT_LEAST(3,3,0)
       .def("info",&Preconditioner::info,
            "Returns success if the Preconditioner has been well initialized.")
+#endif
       .def("solve",&solve,bp::arg("b"),
            "Returns the solution A * z = b where the preconditioner is an estimate of A^-1.")
       
@@ -91,6 +93,7 @@ namespace eigenpy
     }
   };
   
+#if EIGEN_VERSION_AT_LEAST(3,3,0)
   template<typename Scalar>
   struct LeastSquareDiagonalPreconditionerVisitor : PreconditionerBaseVisitor<Eigen::LeastSquareDiagonalPreconditioner<Scalar> >
   {
@@ -113,6 +116,7 @@ namespace eigenpy
       
     }
   };
+#endif
   
   struct IdentityPreconditionerVisitor : PreconditionerBaseVisitor<Eigen::IdentityPreconditioner >
   {
diff --git a/src/solvers/preconditioners.cpp b/src/solvers/preconditioners.cpp
index 519770d265e0c809c645ff88115f52c9b1367db6..bea99da1029f4eb6d68635fd99511ac7d7366c8c 100644
--- a/src/solvers/preconditioners.cpp
+++ b/src/solvers/preconditioners.cpp
@@ -25,7 +25,9 @@ namespace eigenpy
     using namespace Eigen;
     
     DiagonalPreconditionerVisitor<double>::expose();
+#if EIGEN_VERSION_AT_LEAST(3,3,0)
     LeastSquareDiagonalPreconditionerVisitor<double>::expose();
+#endif
     IdentityPreconditionerVisitor::expose();
 //      LimitedBFGSPreconditionerBaseVisitor< LimitedBFGSPreconditioner<double,Eigen::Dynamic,Eigen::Upper|Eigen::Lower> >::expose("LimitedBFGSPreconditioner");
    
diff --git a/src/solvers/solvers.cpp b/src/solvers/solvers.cpp
index 645825753fcb9bdc7bc6e9354285cdd8bd83255b..0cca3f8c9be43ea69ad90c0b75493b3257de9d95 100644
--- a/src/solvers/solvers.cpp
+++ b/src/solvers/solvers.cpp
@@ -16,7 +16,10 @@
 
 #include "eigenpy/solvers/solvers.hpp"
 #include "eigenpy/solvers/ConjugateGradient.hpp"
-#include "eigenpy/solvers/LeastSquaresConjugateGradient.hpp"
+
+#if EIGEN_VERSION_AT_LEAST(3,3,0)
+  #include "eigenpy/solvers/LeastSquaresConjugateGradient.hpp"
+#endif
 
 namespace eigenpy
 {
@@ -24,7 +27,9 @@ namespace eigenpy
   {
     using namespace Eigen;
     ConjugateGradientVisitor< ConjugateGradient<MatrixXd,Lower|Upper> >::expose();
+#if EIGEN_VERSION_AT_LEAST(3,3,0)
     LeastSquaresConjugateGradientVisitor< LeastSquaresConjugateGradient<MatrixXd, LeastSquareDiagonalPreconditionerFix<MatrixXd::Scalar> > >::expose();
+#endif
     
     // Conjugate gradient with limited BFGS preconditioner
     ConjugateGradientVisitor< ConjugateGradient<MatrixXd,Lower|Upper,IdentityPreconditioner > >::expose("IdentityConjugateGradient");