diff --git a/m4/check-package.m4 b/m4/check-package.m4
index f1d4a6248ebaebb439318b5afedf7ecc95c350c6..e25e2ffa57256c93c6f250ee874076ea13a103eb 100644
--- a/m4/check-package.m4
+++ b/m4/check-package.m4
@@ -12,8 +12,37 @@ dnl $5: header name
 dnl $6: include path (-I$6)
 dnl $7 \in \{optional, required\}, bail out if required, warning otherwise
 dnl
+AC_DEFUN([ALBERT_CHECK_PKG_OPT],
+[AC_ARG_WITH($1,
+AC_HELP_STRING([--without-$1], [disable use of package $1
+                      (default: autodetect)]),
+	[case "$withval" in
+		yes)
+			;;
+		no)
+			DISABLE=yes
+			;;
+		*)
+	AC_MSG_ERROR(["$withval" should have been either "yes" or "no"])
+			  ;;
+	esac],
+	[DISABLE=no])
+])
 AC_DEFUN(ALBERT_CHECK_PACKAGE,
 [AC_REQUIRE([AC_SET_PREFIX])
+#
+# foobar
+#
+m4_if($7, optional,[ALBERT_CHECK_PKG_OPT([$1])])
+m4_ifval([$7], [optional], echo barfoo)
+dnl if test "$7" = "optional"; then
+dnl 	ALBERT_CHECK_PKG_OPT([$1])
+dnl fi
+
+if test "$DISABLE" = yes; then
+	:
+else
+
 if test -z "$3"; then
 	DEFAULT_LIBDIR=`eval eval echo ${libdir}`
 else
@@ -93,6 +122,9 @@ else
               1, Define to 1 if you have lib$2)
   fi
 fi
+
+fi dnl disable fi
+
 AC_SUBST(m4_bpatsubst([$1],-,_)_INCLUDE_PATH)
 AC_SUBST(m4_bpatsubst([$1],-,_)_LIB_PATH)
 AC_SUBST(m4_bpatsubst([$1],-,_)_LIB)