diff --git a/src/glpapi19.c b/src/glpapi19.c
index eda96a9..0019bd1 100644
--- a/src/glpapi19.c
+++ b/src/glpapi19.c
@@ -49,9 +49,9 @@ int glp_minisat1(glp_prob *P)
          goto done;
       }
 #if 1 /* 07/XI-2015 */
-      if (sizeof(void *) != sizeof(int))
+      if (sizeof(void *) != sizeof(size_t))
       {  xprintf("glp_minisat1: sorry, MiniSat solver is not supported "
-            "on 64-bit platforms\n");
+            "on this platform\n");
          ret = GLP_EFAIL;
          goto done;
       }
diff --git a/src/minisat/minisat.c b/src/minisat/minisat.c
index f242d83..af64d70 100644
--- a/src/minisat/minisat.c
+++ b/src/minisat/minisat.c
@@ -143,13 +143,13 @@ struct clause_t
 /* Encode literals in clause pointers: */
 
 #define clause_from_lit(l) \
-      (clause*)((unsigned long)(l) + (unsigned long)(l) + 1)
+      (clause*)((size_t)(l) + (size_t)(l) + 1)
 
 #define clause_is_lit(c) \
-      ((unsigned long)(c) & 1)
+      ((size_t)(c) & 1)
 
 #define clause_read_lit(c) \
-      (lit)((unsigned long)(c) >> 1)
+      (lit)((size_t)(c) >> 1)
 
 /*====================================================================*/
 /* Simple helpers: */
@@ -332,8 +332,9 @@ static clause* clause_new(solver* s, lit* begin, lit* end, int learnt)
     c              = (clause*)malloc(sizeof(clause)
                      + sizeof(lit) * size + learnt * sizeof(float));
     c->size_learnt = (size << 1) | learnt;
-#if 0 /* by mao; meaningless non-portable check */
-    assert(((unsigned int)c & 1) == 0);
+#if 1 /* by mao; meaningless non-portable check */
+    /* cmatraki: This is a fundamental assumption of minisat code. */
+    assert(((size_t)c & 1) == 0);
 #endif
 
     for (i = 0; i < size; i++)
