diff --git a/pam/m4/ax_lib_pam.m4 b/pam/m4/ax_lib_pam.m4
index 0803bf3c31fc14c828abf76e25c15a0e5a42491d..0540338693701128a4bd0876792da0d717023884 100644
--- a/pam/m4/ax_lib_pam.m4
+++ b/pam/m4/ax_lib_pam.m4
@@ -11,6 +11,7 @@ AC_DEFUN([AX_LIB_PAM], [
           [AC_MSG_ERROR([No PAM header files found])])])
   AC_CHECK_HEADERS([security/pam_ext.h], [],
       [AC_CHECK_HEADERS([pam/pam_ext.h])])
+  AC_CHECK_HEADERS([security/_pam_macros.h])
   RRA_HEADER_PAM_CONST
 
   AC_SUBST(PAMDIR, "/lib/security")
diff --git a/pam/pam_authclient.c b/pam/pam_authclient.c
index 5fab152529fffe92b61b3d6b47a820087887ee34..e8623a364bf6981ce62a5d37381cdcfded6b1714 100644
--- a/pam/pam_authclient.c
+++ b/pam/pam_authclient.c
@@ -26,6 +26,16 @@
 #include <pam/pam_modules.h>
 #endif
 
+#ifdef HAVE_SECURITY__PAM_MACROS_H
+#include <security/_pam_macros.h>
+#else
+#define D(x) do {							\
+    printf ("debug: %s:%d (%s): ", __FILE__, __LINE__, __FUNCTION__);	\
+    printf x;								\
+    printf ("\n");							\
+  } while (0)
+#endif
+
 #ifndef PAM_EXTERN
 #ifdef PAM_STATIC
 #define PAM_EXTERN static