diff --git a/test/commainitializer.cpp b/test/commainitializer.cpp
index a93a57d..503dd9b 100644
--- a/test/commainitializer.cpp
+++ b/test/commainitializer.cpp
@@ -30,7 +30,10 @@
   Matrix4d m4;
 
   VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8) );
+  
+  #ifndef _MSC_VER
   VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) );
+  #endif
 
   double data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
   Matrix3d ref = Map<Matrix<double,3,3,RowMajor> >(data);
diff --git a/test/sparse.h b/test/sparse.h
index d18217e..128b129 100644
--- a/test/sparse.h
+++ b/test/sparse.h
@@ -24,15 +24,20 @@
 
 #ifndef EIGEN_TESTSPARSE_H
 
-#ifdef __GNUC__
-#include <ext/hash_map>
+#include "main.h"
+
+#if EIGEN_GNUC_AT_LEAST(4,0)
+#include <tr1/unordered_map>
+#define EIGEN_UNORDERED_MAP_SUPPORT
+namespace std {
+  using std::tr1::unordered_map;
+}
 #endif
 
 #ifdef EIGEN_GOOGLEHASH_SUPPORT
   #include <google/sparse_hash_map>
 #endif
 
-#include "main.h"
 #include <Eigen/Cholesky>
 #include <Eigen/LU>
 #include <Eigen/Sparse>
diff --git a/test/sparse_basic.cpp b/test/sparse_basic.cpp
index 68e3573..93065bb 100644
--- a/test/sparse_basic.cpp
+++ b/test/sparse_basic.cpp
@@ -167,8 +167,8 @@
 //   VERIFY_IS_APPROX(m, refMat);
 
     VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, StdMapTraits> >(m,refMat,nonzeroCoords) ));
-    #ifdef _HASH_MAP
-    VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, GnuHashMapTraits> >(m,refMat,nonzeroCoords) ));
+    #ifdef EIGEN_UNORDERED_MAP_SUPPORT
+    VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, StdUnorderedMapTraits> >(m,refMat,nonzeroCoords) ));
     #endif
     #ifdef _DENSE_HASH_MAP_H_
     VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, GoogleDenseHashMapTraits> >(m,refMat,nonzeroCoords) ));
diff --git a/test/submatrices.cpp b/test/submatrices.cpp
index c9552ac..63c61ba 100644
--- a/test/submatrices.cpp
+++ b/test/submatrices.cpp
@@ -57,6 +57,7 @@
      Row.h Column.h Block.h Minor.h DiagonalCoeffs.h
   */
   typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
   typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
   typedef Matrix<Scalar, 1, MatrixType::ColsAtCompileTime> RowVectorType;
   int rows = m.rows();
@@ -140,11 +141,11 @@
   }
 
   // stress some basic stuffs with block matrices
-  VERIFY(ones.col(c1).sum() == Scalar(rows));
-  VERIFY(ones.row(r1).sum() == Scalar(cols));
+  VERIFY(ei_real(ones.col(c1).sum()) == RealScalar(rows));
+  VERIFY(ei_real(ones.row(r1).sum()) == RealScalar(cols));
 
-  VERIFY(ones.col(c1).dot(ones.col(c2)) == Scalar(rows));
-  VERIFY(ones.row(r1).dot(ones.row(r2)) == Scalar(cols));
+  VERIFY(ei_real(ones.col(c1).dot(ones.col(c2))) == RealScalar(rows));
+  VERIFY(ei_real(ones.row(r1).dot(ones.row(r2))) == RealScalar(cols));
 }
 
 void test_submatrices()
