diff --git a/m4/check-iso-c99.m4 b/m4/check-iso-c99.m4
index f5c7f30ae7bf1c217d3bbcfa9f95d82dc671f437..91995395ce4e600baf4b321e075efc66c3d0a853 100644
--- a/m4/check-iso-c99.m4
+++ b/m4/check-iso-c99.m4
@@ -21,19 +21,24 @@ AC_COMPILE_IFELSE(
 [[extern void exit(int status);
 #define FOO(a, ...)  (a, __VA_ARGS__)
 #include <stdarg.h>
+#include <string.h>
 void va_copy_test(va_list ap)
 {
   va_list ap2;
   va_copy(ap2, ap);
   va_end(ap2);
 }
+int funclen(void)
+{
+  return (int)strlen(__func__);
+}
 extern int foo(int a, int b, int c);]],
 [[int bar[foo FOO(3, 4, 5)];
 exit(bar[0]);]])],
 [AC_MSG_RESULT(
-  [variadic macros, va_copy() and variable length arrays are available])],
+  [variadic macros, va_copy(), __func__ and variable length arrays are available])],
 [AC_MSG_FAILURE(
- [variadic macros, va_copy() and/or vairable length arrays are NOT available])])
+ [variadic macros, va_copy(), __func__ and/or vairable length arrays are NOT available])])
 AC_LANG_POP([C])
 CFLAGS="${_alberta_save_cflags}"
 ])