diff --git a/libs/minisat/Vec.h b/libs/minisat/Vec.h
index 9e6d21174..c5c913be9 100644
--- a/libs/minisat/Vec.h
+++ b/libs/minisat/Vec.h
@@ -100,7 +100,13 @@ void vec<T,_Size>::capacity(Size min_cap) {
     Size add = max((min_cap - cap + 1) & ~1, ((cap >> 1) + 2) & ~1);   // NOTE: grow by approximately 3/2
     const Size size_max = std::numeric_limits<Size>::max();
     if ( ((size_max <= std::numeric_limits<int>::max()) && (add > size_max - cap))
-    ||   (((data = (T*)::reallocarray(data, (cap += add), sizeof(T))) == NULL) && errno == ENOMEM) )
+    ||   (
+#ifdef _DEFAULT_SOURCE
+            ((data = (T*)::reallocarray(data, (cap += add), sizeof(T))) == NULL)
+#else
+            ((data = (T*)::realloc(data, (cap += add) * sizeof(T))) == NULL) 
+#endif
+	&& errno == ENOMEM) )
         throw OutOfMemoryException();
  }