Added version testing for MSVC.
diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h
index 1fc0a6c..39e74cd 100644
--- a/Eigen/src/Core/util/Memory.h
+++ b/Eigen/src/Core/util/Memory.h
@@ -596,8 +596,10 @@
        __asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id) );
 #    endif
 #elif defined(_MSC_VER)
+#if (_MSC_VER > 1500) /* newer than MSVC++ 9.0 */ || (_MSC_VER == 1500 && _MSC_FULL_VER >= 150030729) /* MSVC++ 9.0 with SP1*/
 #    define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
 #endif
+#endif
 
 #ifdef EIGEN_CPUID
 inline bool ei_cpuid_is_vendor(int abcd[4], const char* vendor)