diff --git a/m4/albert-check.m4 b/m4/albert-check.m4
index 17386cbe40e48732342f3e668bcc82125fa103ff..ca26a8bd54e8536137c64ac60223d0436ab0aa99 100644
--- a/m4/albert-check.m4
+++ b/m4/albert-check.m4
@@ -1,3 +1,6 @@
+dnl
+dnl Define this outside ALBERT_CHECK() so that it can be AC_REQUIRE'd
+dnl
 AC_DEFUN([ALBERT_OPTIONS],
 [
 AC_ARG_ENABLE(el_index,
@@ -12,8 +15,34 @@ AC_ARG_ENABLE(debug,
 [  --enable-debug          use debug-enabled ALBERT libraries (default: off)],
 [ALBERT_DEBUG=1],
 ALBERT_DEBUG=0)
-])
 AC_SUBST([ALBERT_DEBUG])
+])
+
+dnl
+dnl check for possiby needed packages, DEFUN for AC_REQUIRE
+dnl
+AC_DEFUN([ALBERT_AUX_CHECK],
+[AC_REQUIRE([AC_PATH_X])
+AC_REQUIRE([AC_PATH_XTRA])
+ALBERT_CHECK_PACKAGE(OpenGL, GL, ${x_libraries}, ${X_LIBS} -lX11,
+                     gl.h, ${x_includes}/GL , optional)
+ALBERT_CHECK_PACKAGE(PLOT, PLOTansi, $ALBERT_LIB_PATH, $OpenGL_LIB,
+                     PLOTansi.h, $ALBERT_INCLUDE_PATH, optional)
+ALBERT_CHECK_PACKAGE(gltools,  gltools,, $OpenGL_LIB,
+                     glwin.h,, optional)
+AC_LANG_PUSH(Fortran 77)
+AC_CHECK_LIB(blas, dnrm2,
+             [FLIBS="-lblas ${FLIBS}"
+             AC_DEFINE(HAVE_LIBBLAS, 1, [Define to 1 if you have libblas])],
+             [AC_MSG_ERROR([Required BLAS library was not found])])
+AC_LANG_POP(Fortran 77)
+ALBERT_CHECK_PACKAGE(albert_util, albert_util, $ALBERT_LIB_PATH, -lm,
+                     albert_util.h, $ALBERT_INCLUDE_PATH, required)
+ALBERT_CHECK_PACKAGE(csolver, csolver, $ALBERT_LIB_PATH,
+                     ${FLIBS} -lalbert_util -lm,
+                     oem.h, $ALBERT_INCLUDE_PATH, required)
+])
+
 dnl
 dnl Check for ALBERT libraries at given dimensions, taking ELINDEX and DEBUG
 dnl into account. $1 is DIM, $2 ist DIM_OF_WORLD
@@ -62,25 +91,7 @@ dnl
 dnl Now check for the library. Take into account that we might need
 dnl gltools and PLOTansi
 dnl
-if test "x$_ALBERT_AUX_LIBS_CHECKED_" = "x" ; then
-  ALBERT_CHECK_PKG(OpenGL, GL, /usr/X11R6/lib, ${X_LIBS} -lX11,
-               gl.h, /usr/X11R6/include/GL, optional)
-  ALBERT_CHECK_PKG(PLOT, PLOTansi, $ALBERT_LIB_PATH, $OpenGL_LIB,
-               PLOTansi.h, $ALBERT_INCLUDE_PATH, optional)
-  ALBERT_CHECK_PKG(gltools,  gltools, `pwd`/../gltools-2-4, $OpenGL_LIB,
-               glwin.h,`pwd`/../gltools-2-4, optional)
-  AC_LANG_PUSH(Fortran 77)
-  AC_CHECK_LIB(blas, dnrm2,
-               [FLIBS="-lblas ${FLIBS}"
-                AC_DEFINE(HAVE_LIBBLAS, 1, [Define to 1 if you have libblas])],
-               [AC_MSG_ERROR([Required BLAS library was not found])])
-  AC_LANG_POP(Fortran 77)
-  ALBERT_CHECK_PKG(albert_util, albert_util, $ALBERT_LIB_PATH, -lm,
-               albert_util.h, $ALBERT_INCLUDE_PATH, required)
-  ALBERT_CHECK_PKG(csolver, csolver, $ALBERT_LIB_PATH, ${FLIBS} -lalbert_util -lm,
-               oem.h, $ALBERT_INCLUDE_PATH, required)
-  _ALBERT_AUX_LIBS_CHECKED_=checked
-fi
+AC_REQUIRE([ALBERT_AUX_CHECK])
 dnl
 dnl Now check for libALBERT_XXX itself
 dnl
@@ -90,10 +101,11 @@ AC_CACHE_CHECK([for additional libraries needed to link],
 	[ac_cv_libalbert$1$2_gfxlibs],
 	[ac_cv_libalbert$1$2_gfxlibs=unset
 	for GFX_LIBS in	"" \
-			"$OpenGL_LIB ${X_LIB} -lX11" \
-			"$gltools_LIB $OpenGL_LIB ${X_LIB} -lX11" \
-			"$PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11" \
-			"$gltools_LIB $PLOT_LIB $OpenGL_LIB ${X_LIB} -lX11"; do
+			"$OpenGL_LIB ${X_LIBS} -lX11" \
+			"$gltools_LIB $OpenGL_LIB ${X_LIBS} -lX11" \
+			"$PLOT_LIB $OpenGL_LIB ${X_LIBS} -lX11" \
+			"$gltools_LIB $PLOT_LIB $OpenGL_LIB ${X_LIBS} -lX11"
+	do
 	  eval "unset ${ALBERT_LIB_$1$2_C}___main"
 	  AC_CHECK_LIB($ALBERT_LIB_$1$2, main,
 	  [ac_cv_libalbert$1$2_gfxlibs="$GFX_LIBS"