GCC 3.0 has not been released yet, but it is good to be prepared.

diff --git a/include/resource.h b/include/resource.h
index 6512265..4aed683 100644
--- a/include/resource.h
+++ b/include/resource.h
@@ -35,7 +35,7 @@
 
 extern void LIBRES_RegisterResources(const wrc_resource32_t * const * Res);
 
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
+#if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
 #define WINE_CONSTRUCTOR  __attribute__((constructor))
 #define HAVE_WINE_CONSTRUCTOR
 #else
diff --git a/include/windef.h b/include/windef.h
index 8ff7737..a03a7a3 100644
--- a/include/windef.h
+++ b/include/windef.h
@@ -57,7 +57,7 @@
 /* Calling conventions definitions */
 
 #ifdef __i386__
-# if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)
+# if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
 #  define __stdcall __attribute__((__stdcall__))
 #  define __cdecl   __attribute__((__cdecl__))
 #  define __RESTORE_ES  __asm__ __volatile__("pushl %ds\n\tpopl %es")
diff --git a/rc/winerc.c b/rc/winerc.c
index 97677dd..d81b92a 100644
--- a/rc/winerc.c
+++ b/rc/winerc.c
@@ -897,7 +897,7 @@
     /* Perform autoregistration */
     fprintf( code, 
              "#ifndef __WINE__\n"
-             "#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)\n"
+             "#if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))\n"
              "static void DoIt(void) __attribute__((constructor));\n"
              "#else\n"
              "static void DoIt(void);\n"