diff --git a/src/tweetnacl.c b/src/tweetnacl.c
index 16f61af5..9fe1154b 100644
--- a/src/tweetnacl.c
+++ b/src/tweetnacl.c
@@ -32,9 +32,9 @@
 
 /*
     Disable warnings for this source only, rather than for the whole
-    codebase when building with C99 or with Microsoft's compiler
+    codebase when building with C99 (gcc >= 4.2) or with Microsoft's compiler
 */
-#if defined __GNUC__ && __STDC_VERSION__ < 201112L
+#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) && __STDC_VERSION__ < 201112L
 #   pragma GCC diagnostic ignored "-Wsign-compare"
 #elif defined _MSC_VER
 #   pragma warning (disable:4018 4244 4146)