More Index realted warnings.
diff --git a/Eigen/src/Core/PermutationMatrix.h b/Eigen/src/Core/PermutationMatrix.h
index 8227c9b..4283226 100644
--- a/Eigen/src/Core/PermutationMatrix.h
+++ b/Eigen/src/Core/PermutationMatrix.h
@@ -192,7 +192,7 @@
 
     /** Sets *this to be the identity permutation matrix of given size.
       */
-    void setIdentity(int size)
+    void setIdentity(Index size)
     {
       resize(size);
       setIdentity();
diff --git a/test/stdvector_overload.cpp b/test/stdvector_overload.cpp
index 86f4308..898719a 100644
--- a/test/stdvector_overload.cpp
+++ b/test/stdvector_overload.cpp
@@ -43,8 +43,8 @@
 template<typename MatrixType>
 void check_stdvector_matrix(const MatrixType& m)
 {
-  int rows = m.rows();
-  int cols = m.cols();
+  typename MatrixType::Index rows = m.rows();
+  typename MatrixType::Index cols = m.cols();
   MatrixType x = MatrixType::Random(rows,cols), y = MatrixType::Random(rows,cols);
   std::vector<MatrixType> v(10, MatrixType(rows,cols)), w(20, y);
   v[5] = x;
diff --git a/test/svd.cpp b/test/svd.cpp
index 9f3072d..fbeba79 100644
--- a/test/svd.cpp
+++ b/test/svd.cpp
@@ -31,8 +31,8 @@
   /* this test covers the following files:
      SVD.h
   */
-  int rows = m.rows();
-  int cols = m.cols();
+  typename MatrixType::Index rows = m.rows();
+  typename MatrixType::Index cols = m.cols();
 
   typedef typename MatrixType::Scalar Scalar;
   typedef typename NumTraits<Scalar>::Real RealScalar;
diff --git a/test/swap.cpp b/test/swap.cpp
index c11f0fe..74543a6 100644
--- a/test/swap.cpp
+++ b/test/swap.cpp
@@ -43,8 +43,8 @@
   typedef typename MatrixType::Scalar Scalar;
 
   ei_assert((!ei_is_same_type<MatrixType,OtherMatrixType>::ret));
-  int rows = m.rows();
-  int cols = m.cols();
+  typename MatrixType::Index rows = m.rows();
+  typename MatrixType::Index cols = m.cols();
   
   // construct 3 matrix guaranteed to be distinct
   MatrixType m1 = MatrixType::Random(rows,cols);
diff --git a/test/triangular.cpp b/test/triangular.cpp
index 302984e..673a3d2 100644
--- a/test/triangular.cpp
+++ b/test/triangular.cpp
@@ -34,8 +34,8 @@
 
   RealScalar largerEps = 10*test_precision<RealScalar>();
 
-  int rows = m.rows();
-  int cols = m.cols();
+  typename MatrixType::Index rows = m.rows();
+  typename MatrixType::Index cols = m.cols();
 
   MatrixType m1 = MatrixType::Random(rows, cols),
              m2 = MatrixType::Random(rows, cols),
diff --git a/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h b/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
index a25c9cd..e840dd4 100644
--- a/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
+++ b/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
@@ -79,7 +79,7 @@
         /* Local variables */
         Scalar h;
         int nfev=0;
-        const int n = _x.size();
+        const typename InputType::Index n = _x.size();
         const Scalar eps = ei_sqrt((std::max(epsfcn,NumTraits<Scalar>::epsilon() )));
         ValueType val1, val2;
         InputType x = _x;
diff --git a/unsupported/test/NonLinearOptimization.cpp b/unsupported/test/NonLinearOptimization.cpp
index cb70f2a..851c534 100644
--- a/unsupported/test/NonLinearOptimization.cpp
+++ b/unsupported/test/NonLinearOptimization.cpp
@@ -447,7 +447,7 @@
         }
         return 0;
     }
-    int df(const VectorXd &x, VectorXd &jac_row, int rownb)
+    int df(const VectorXd &x, VectorXd &jac_row, VectorXd::Index rownb)
     {
         assert(x.size()==3);
         assert(jac_row.size()==x.size());