diff --git a/m4/gltools.m4 b/m4/gltools.m4
index c6dda9ce48b2e89d0ae3a792db690f5d58dc68df..4f21e8ea606776b2054bdcde3ecd70739bd258fe 100644
--- a/m4/gltools.m4
+++ b/m4/gltools.m4
@@ -23,6 +23,18 @@ if ! test "z${GLTOOLS_LIBS}" = "z"; then
 	[AC_MSG_RESULT([using vanilla gltools version])
 	    AC_DEFINE([HAVE_GLMLOOPCALLBACK_COORDS_ONLY], 0,
 		[Define if glmLoopCallback accepts an "coords_only" argument.])])
+    ac_al_save_LIBS="${LIBS}"
+    LIBS="`eval eval eval echo ${GLTOOLS_ALL_LIBS}` ${LIBS}"
+    AC_CHECK_FUNC([glrGetPOV], [GLTOOLS_VERSION="25"], [GLTOOLS_VERSION="24"])
+    LIBS="${ac_al_save_LIBS}"
+    if test "$GLTOOLS_VERSION" = "24"; then
+	AC_MSG_RESULT([Using gltools 2.4])
+    else
+	AC_MSG_RESULT([Using gltools 2.5 or later])
+    fi
+    AC_SUBST([GLTOOLS_VERSION])
+    AC_DEFINE_UNQUOTED([GLTOOLS_VERSION], ${GLTOOLS_VERSION},
+      [Define to 24 if using gltools 2.4 and to 25 when using gltools-2.5])
     CPPFLAGS="${ac_al_save_CPPFLAGS}"
 fi
 AC_LANG_POP([C])