diff --git a/src/helper/command.h b/src/helper/command.h
index c574efd..3fa100d 100644
--- a/src/helper/command.h
+++ b/src/helper/command.h
@@ -35,9 +35,9 @@
 #include "jim.h"
 #endif
 
-/* To achieve C99 printf compatibility in MinGW, gnu_printf should */
-/* be used for __attribute__((format( ... )))                      */
-#ifdef IS_MINGW
+/* To achieve C99 printf compatibility in MinGW, gnu_printf should be */
+/* used for __attribute__((format( ... ))), with GCC v4.4 or later    */
+#if (defined(IS_MINGW) && ( ((__GNUC__ << 16) + __GNUC_MINOR__) >= 0x00040004 ))
 #define PRINTF_ATTRIBUTE_FORMAT gnu_printf
 #else
 #define PRINTF_ATTRIBUTE_FORMAT printf
diff --git a/src/helper/log.h b/src/helper/log.h
index 8f6ac77..931fd37 100644
--- a/src/helper/log.h
+++ b/src/helper/log.h
@@ -28,9 +28,9 @@
 
 #include "command.h"
 
-/* To achieve C99 printf compatibility in MinGW, gnu_printf should */
-/* be used for __attribute__((format( ... )))                      */
-#ifdef IS_MINGW
+/* To achieve C99 printf compatibility in MinGW, gnu_printf should be */
+/* used for __attribute__((format( ... ))), with GCC v4.4 or later    */
+#if (defined(IS_MINGW) && ( ((__GNUC__ << 16) + __GNUC_MINOR__) >= 0x00040004 ))
 #define PRINTF_ATTRIBUTE_FORMAT gnu_printf
 #else
 #define PRINTF_ATTRIBUTE_FORMAT printf
