diff -Naur VTK-6.1.0.a/Common/Core/vtkConditionVariable.cxx VTK-6.1.0.b/Common/Core/vtkConditionVariable.cxx
--- VTK-6.1.0.a/Common/Core/vtkConditionVariable.cxx	2014-01-21 23:22:59.000000000 +0700
+++ VTK-6.1.0.b/Common/Core/vtkConditionVariable.cxx	2014-09-21 00:06:12.458762700 +0700
@@ -77,6 +77,15 @@
 #endif // ! defined(VTK_USE_PTHREADS) && ! defined(VTK_HP_PTHREADS) && ! defined(VTK_USE_WIN32_THREADS)
 
 #ifdef VTK_USE_WIN32_THREADS
+
+#define pthread_cond_t         vtk_win32_pthread_cond_t
+#define pthread_condattr_t     vtk_win32_pthread_condattr_t
+#define pthread_cond_init      vtk_win32_pthread_cond_init
+#define pthread_cond_wait      vtk_win32_pthread_cond_wait
+#define pthread_cond_signal    vtk_win32_pthread_cond_signal
+#define pthread_cond_broadcast vtk_win32_pthread_cond_broadcast
+#define pthread_cond_destroy   vtk_win32_pthread_cond_destroy
+
 typedef int pthread_condattr_t;
 
 #  if 1
diff -Naur VTK-6.1.0.a/Common/Core/vtkConditionVariable.h VTK-6.1.0.b/Common/Core/vtkConditionVariable.h
--- VTK-6.1.0.a/Common/Core/vtkConditionVariable.h	2014-01-21 23:22:59.000000000 +0700
+++ VTK-6.1.0.b/Common/Core/vtkConditionVariable.h	2014-09-21 00:06:12.489962700 +0700
@@ -50,6 +50,7 @@
 
 #ifdef VTK_USE_WIN32_THREADS
 #if 1
+#define pthread_cond_t vtk_win32_pthread_cond_t
 typedef struct
 {
   // Number of threads waiting on condition.
@@ -70,6 +71,7 @@
 } pthread_cond_t;
 
 typedef pthread_cond_t vtkConditionType;
+#undef pthread_cond_t
 #  else // 0
 typedef struct
 {
diff -Naur VTK-6.1.0.a/Filters/General/vtkMultiThreshold.h VTK-6.1.0.b/Filters/General/vtkMultiThreshold.h
--- VTK-6.1.0.a/Filters/General/vtkMultiThreshold.h	2014-01-21 23:22:59.000000000 +0700
+++ VTK-6.1.0.b/Filters/General/vtkMultiThreshold.h	2014-09-21 05:32:57.474083800 +0700
@@ -107,6 +107,10 @@
 #include <set> // for UpdateDependents()
 #include <string> // for holding array names in NormKey
 
+#ifdef AND
+#undef AND
+#endif
+
 class vtkCell;
 class vtkCellData;
 class vtkDataArray;
