diff --git a/configure.ac b/configure.ac
index a1661644a11d0d953553c506d6d5bdb3a7107fff..f3a81e323816530eca9f9892d51047721bd4cce5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -493,8 +493,6 @@ FFLAGS="${ALBERTA_FFLAGS}"
 AC_PROG_LIBTOOL
 
 # Checks for libraries, headers, functions, declarations ...
-AC_FUNC_OBSTACK
-AM_CONDITIONAL(NEED_OBSTACK, [test ! "x${ac_cv_func_obstack}" = "xyes"])
 
 # Check for libraries
 AC_CHECK_LIB([m],[main],,
@@ -503,10 +501,18 @@ AC_CHECK_LIB([m],[main],,
 # Check for header files.
 AC_HEADER_STDC
 AC_HEADER_STDBOOL
-AC_CHECK_HEADERS([math.h stdlib.h unistd.h string.h rpc/types.h rpc/xdr.h],,
+AC_CHECK_HEADERS([math.h stdlib.h unistd.h string.h],,
                  [AC_MSG_ERROR([Sorry, these are needed..])])
 AC_CHECK_HEADERS([malloc.h])
 
+#
+# rpc/xdr.h depends on rpc/types.h, at least on mac os x
+#
+AC_CHECK_HEADERS([rpc/types.h],,[AC_MSG_ERROR([Sorry, rpc/types.h is needed.])])
+AC_CHECK_HEADERS([rpc/xdr.h],,[AC_MSG_ERROR([Sorry, rpc/xdr.h is needed.])],
+[#ifdef HAVE_RPC_TYPES_H
+# include <rpc/types.h>
+#endif])
 
 #
 # try to pull in some special features (but make sure to supply
@@ -580,8 +586,11 @@ AC_CHECK_FUNCS([unsetenv])
 AC_CHECK_FUNCS([getopt_long],[],
 	[AC_LIBOBJ([getopt])
 	AC_LIBOBJ([getopt1])
-	NEED_GETOPT=1
-	GNUCOMPAT_INCLUDE_PATH='-I$(top_srcdir)/gnu-compat/'])
+	NEED_GETOPT=1])
+AC_FUNC_OBSTACK
+AM_CONDITIONAL(NEED_OBSTACK, [test ! "x${ac_cv_func_obstack}" = "xyes"])
+
+GNUCOMPAT_INCLUDE_PATH='-I$(top_srcdir)/gnu-compat/'
 AC_SUBST([GNUCOMPAT_INCLUDE_PATH])
 AM_CONDITIONAL(NEED_GETOPT, [test "x${NEED_GETOPT}" = "x1"])
 
diff --git a/m4/grapeiface.m4 b/m4/grapeiface.m4
index 957eabea8a0ffe986fdf7a591abb19a9fb693747..7eb573df383e5bfa0c72bb85313dcc558a142a7b 100644
--- a/m4/grapeiface.m4
+++ b/m4/grapeiface.m4
@@ -9,6 +9,9 @@ ALBERTA_CHECK_PACKAGE([grape],[gr],[grape],[],[${OPENGL_ALL_LIBS}],
                       [grape.h],[],[],[optional])
 ALBERTA_LIB_PATHS='$prefix/lib'
 ALBERTA_ALL_INCLUDES='-I$(top_srcdir)/alberta/src/Common/ -I$(top_srcdir)/alberta_util/src/ -I$(top_builddir)/alberta_util/src/'
+if test  ! "x${ac_cv_func_obstack}" = "xyes" || [test "x${NEED_GETOPT}" = "x1"]; then
+  ALBERTA_ALL_INCLUDES="${ALBERTA_ALL_INCLUDES} "'-I$(top_srcdir)/gnu-compat/'
+fi
 
 #
 # ordinary libraries
diff --git a/m4/opengl.m4 b/m4/opengl.m4
index 155991a24f618de092979dddca15bdb5b1fac0bd..582ad43d3acc73754e22aa66638d2c83447984d9 100644
--- a/m4/opengl.m4
+++ b/m4/opengl.m4
@@ -6,7 +6,7 @@ AC_DEFUN([ALBERTA_OPENGL_CHECK],
 AC_REQUIRE([ALBERTA_X_WINDOW_SYSTEM])
 ALBERTA_CHECK_PACKAGE([OpenGL],[GL],[glXMakeCurrent],
   [${x_libraries}],[${X_ALL_LIBS}],
-  [gl.h],[${x_includes:+${x_includes}/GL} ${includedir}/GL ${oldincludedir}/GL],[${X_CFLAGS}],
+  [GL/gl.h],[${x_includes:+${x_includes}} ${includedir} ${oldincludedir}],[${X_CFLAGS}],
   [optional])
 # ALBERTA_OPENGL_CHECK stop
 ])