diff -rupNw glucose-syrup/core/Solver.cc glucose-syrup-patched/core/Solver.cc
--- glucose-syrup/core/Solver.cc	2014-10-03 11:10:21.000000000 +0200
+++ glucose-syrup-patched/core/Solver.cc	2018-04-21 16:58:22.950005391 +0200
@@ -931,7 +931,6 @@ void Solver::uncheckedEnqueue(Lit p, CRe
 CRef Solver::propagate() {
     CRef confl = CRef_Undef;
     int num_props = 0;
-    int previousqhead = qhead;
     watches.cleanAll();
     watchesBin.cleanAll();
     unaryWatches.cleanAll();
@@ -1405,7 +1404,9 @@ lbool Solver::search(int nof_conflicts)
                 decisions++;
                 next = pickBranchLit();
                 if (next == lit_Undef) {
+#if 0
                     printf("c last restart ## conflicts  :  %d %d \n", conflictC, decisionLevel());
+#endif
                     // Model found:
                     return l_True;
                 }
diff -rupNw glucose-syrup/core/SolverTypes.h glucose-syrup-patched/core/SolverTypes.h
--- glucose-syrup/core/SolverTypes.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/core/SolverTypes.h	2018-04-21 16:58:22.950005391 +0200
@@ -53,7 +53,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
 
 #include <assert.h>
 #include <stdint.h>
+#ifndef _MSC_VER
 #include <pthread.h>
+#endif
 
 #include "mtl/IntTypes.h"
 #include "mtl/Alg.h"
@@ -170,7 +172,10 @@ class Clause {
       unsigned lbd : BITS_LBD;
     }  header;
 
+#include <util/pragma_push.def>
+#include <util/pragma_wzero_length_array.def>
     union { Lit lit; float act; uint32_t abs; CRef rel; } data[0];
+#include <util/pragma_pop.def>
 
     friend class ClauseAllocator;
 
diff -rupNw glucose-syrup/mtl/Clone.h glucose-syrup-patched/mtl/Clone.h
--- glucose-syrup/mtl/Clone.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/mtl/Clone.h	2018-05-10 12:35:25.150491249 +0200
@@ -8,6 +8,6 @@ namespace Glucose {
         public:
           virtual Clone* clone() const = 0;
     };
-};
+}
 
 #endif
\ No newline at end of file
diff -rupNw glucose-syrup/mtl/Clone.h~ glucose-syrup-patched/mtl/Clone.h~
--- glucose-syrup/mtl/Clone.h~	1970-01-01 01:00:00.000000000 +0100
+++ glucose-syrup-patched/mtl/Clone.h~	2018-04-21 16:58:22.950005391 +0200
@@ -0,0 +1,13 @@
+#ifndef Glucose_Clone_h
+#define Glucose_Clone_h
+
+
+namespace Glucose {
+
+    class Clone {
+        public:
+          virtual Clone* clone() const = 0;
+    };
+};
+
+#endif
\ No newline at end of file
diff -rupNw glucose-syrup/mtl/IntTypes.h glucose-syrup-patched/mtl/IntTypes.h
--- glucose-syrup/mtl/IntTypes.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/mtl/IntTypes.h	2018-04-21 16:58:22.950005391 +0200
@@ -31,7 +31,9 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
 #else
 
 #   include <stdint.h>
+#ifndef _MSC_VER
 #   include <inttypes.h>
+#endif
 
 #endif
 
diff -rupNw glucose-syrup/mtl/Vec.h glucose-syrup-patched/mtl/Vec.h
--- glucose-syrup/mtl/Vec.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/mtl/Vec.h	2018-04-21 16:58:22.950005391 +0200
@@ -103,7 +103,7 @@ template<class T>
 void vec<T>::capacity(int min_cap) {
     if (cap >= min_cap) return;
     int add = imax((min_cap - cap + 1) & ~1, ((cap >> 1) + 2) & ~1);   // NOTE: grow by approximately 3/2
-    if (add > INT_MAX - cap || ((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) && errno == ENOMEM)
+    if (add > INT_MAX - cap || (((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) && errno == ENOMEM))
         throw OutOfMemoryException();
  }
 
diff -rupNw glucose-syrup/simp/SimpSolver.cc glucose-syrup-patched/simp/SimpSolver.cc
--- glucose-syrup/simp/SimpSolver.cc	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/simp/SimpSolver.cc	2018-04-21 16:58:22.950005391 +0200
@@ -319,10 +319,13 @@ bool SimpSolver::merge(const Clause& _ps
         if (var(qs[i]) != v){
             for (int j = 0; j < ps.size(); j++)
                 if (var(ps[j]) == var(qs[i]))
+                {
                     if (ps[j] == ~qs[i])
+
                         return false;
                     else
                         goto next;
+                }
             out_clause.push(qs[i]);
         }
         next:;
@@ -353,10 +356,12 @@ bool SimpSolver::merge(const Clause& _ps
         if (var(__qs[i]) != v){
             for (int j = 0; j < ps.size(); j++)
                 if (var(__ps[j]) == var(__qs[i]))
+                {
                     if (__ps[j] == ~__qs[i])
                         return false;
                     else
                         goto next;
+                }
             size++;
         }
         next:;
@@ -687,11 +692,11 @@ bool SimpSolver::eliminate(bool turn_off
     //
 
     int toPerform = clauses.size()<=4800000;
-    
+#if 0
     if(!toPerform) {
       printf("c Too many clauses... No preprocessing\n");
     }
-
+#endif
     while (toPerform && (n_touched > 0 || bwdsub_assigns < trail.size() || elim_heap.size() > 0)){
 
         gatherTouchedClauses();
@@ -760,10 +765,11 @@ bool SimpSolver::eliminate(bool turn_off
         checkGarbage();
     }
 
+#if 0
     if (verbosity >= 0 && elimclauses.size() > 0)
         printf("c |  Eliminated clauses:     %10.2f Mb                                                                |\n", 
                double(elimclauses.size() * sizeof(uint32_t)) / (1024*1024));
-
+#endif
                
     return ok;
 
diff -rupNw glucose-syrup/utils/Options.h glucose-syrup-patched/utils/Options.h
--- glucose-syrup/utils/Options.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/utils/Options.h	2018-04-21 16:58:22.950005391 +0200
@@ -60,7 +60,7 @@ class Option
     struct OptionLt {
         bool operator()(const Option* x, const Option* y) {
             int test1 = strcmp(x->category, y->category);
-            return test1 < 0 || test1 == 0 && strcmp(x->type_name, y->type_name) < 0;
+            return test1 < 0 || (test1 == 0 && strcmp(x->type_name, y->type_name) < 0);
         }
     };
 
diff -rupNw glucose-syrup/utils/ParseUtils.h glucose-syrup-patched/utils/ParseUtils.h
--- glucose-syrup/utils/ParseUtils.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/utils/ParseUtils.h	2018-04-21 16:58:22.950005391 +0200
@@ -25,7 +25,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR
 #include <stdio.h>
 #include <math.h>
 
-#include <zlib.h>
+//#include <zlib.h>
 
 namespace Glucose {
 
@@ -36,7 +36,7 @@ static const int buffer_size = 1048576;
 
 
 class StreamBuffer {
-    gzFile        in;
+    //gzFile        in;
     unsigned char buf[buffer_size];
     int           pos;
     int           size;
@@ -44,10 +44,10 @@ class StreamBuffer {
     void assureLookahead() {
         if (pos >= size) {
             pos  = 0;
-            size = gzread(in, buf, sizeof(buf)); } }
+            /*size = gzread(in, buf, sizeof(buf));*/ } }
 
 public:
-    explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0) { assureLookahead(); }
+    //explicit StreamBuffer(gzFile i) : in(i), pos(0), size(0) { assureLookahead(); }
 
     int  operator *  () const { return (pos >= size) ? EOF : buf[pos]; }
     void operator ++ ()       { pos++; assureLookahead(); }
diff -rupNw glucose-syrup/utils/System.h glucose-syrup-patched/utils/System.h
--- glucose-syrup/utils/System.h	2014-10-03 11:10:22.000000000 +0200
+++ glucose-syrup-patched/utils/System.h	2018-04-21 16:58:22.950005391 +0200
@@ -60,8 +60,11 @@ static inline double Glucose::cpuTime(vo
 
 // Laurent: I know that this will not compile directly under Windows... sorry for that
 static inline double Glucose::realTime() {
+#ifndef _WIN32
     struct timeval tv;
     gettimeofday(&tv, NULL);
-    return (double)tv.tv_sec + (double) tv.tv_usec / 1000000; }
+    return (double)tv.tv_sec + (double) tv.tv_usec / 1000000;
+#endif
+}
 
 #endif
