diff --git a/configure.ac b/configure.ac
index 646cb4d..8d52043 100644
--- a/configure.ac
+++ b/configure.ac
@@ -222,19 +222,20 @@ if test x$enable_split_authentication = xyes; then
 fi
 
 AC_ARG_WITH(default-pam-config,
-	    AS_HELP_STRING([--with-default-pam-config: One of redhat, openembedded, exherbo, none @<:@default=auto@:>@]))
+	    AS_HELP_STRING([--with-default-pam-config: One of redhat, openembedded, exherbo, lfs, none @<:@default=auto@:>@]))
 dnl If not given, try autodetecting from release files (see NetworkManager source) 
 if test x$with_default_pam_config = x; then
 	AC_CHECK_FILE(/etc/redhat-release,with_default_pam_config="redhat")
 	AC_CHECK_FILE(/etc/fedora-release,with_default_pam_config="redhat")
 	AC_CHECK_FILE(/etc/exherbo-release,with_default_pam_config="exherbo")
+	AC_CHECK_FILE(/etc/lfs-release,with_default_pam_config="lfs")
 	dnl If not autodetected, default to none
 	if test x$with_default_pam_config = x; then
 	  with_default_pam_config=none
 	fi
 fi
 case x$with_default_pam_config in
-     xredhat|xopenembedded|xexherbo|xnone) ;;
+     xredhat|xopenembedded|xexherbo|xlfs|xnone) ;;
      *)
        AC_MSG_ERROR([Invalid --with-default-pam-config ${with_default_pam_config}])
        exit 1
@@ -243,6 +244,7 @@ esac
 AM_CONDITIONAL(ENABLE_REDHAT_PAM_CONFIG, test x$with_default_pam_config = xredhat)
 AM_CONDITIONAL(ENABLE_OPENEMBEDDED_PAM_CONFIG, test x$with_default_pam_config = xopenembedded)
 AM_CONDITIONAL(ENABLE_EXHERBO_PAM_CONFIG, test x$with_default_pam_config = xexherbo)
+AM_CONDITIONAL(ENABLE_LFS_PAM_CONFIG, test x$with_default_pam_config = xlfs)
 
 AC_ARG_ENABLE(console-helper,
 	      AS_HELP_STRING([--enable-console-helper],
diff --git a/data/Makefile.am b/data/Makefile.am
index 8f28b7c..52d4a7d 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -113,6 +113,15 @@ pam_exherbo_files = pam-exherbo/gdm-autologin.pam \
 	$(NULL)
 EXTRA_DIST += $(pam_exherbo_files)
 
+pam_lfs_files = pam-lfs/gdm.pam			\
+	pam-lfs/gdm-autologin.pam		\
+	pam-lfs/gdm-launch-environment.pam	\
+	pam-lfs/gdm-fingerprint.pam		\
+	pam-lfs/gdm-smartcard.pam		\
+	pam-lfs/gdm-password.pam		\
+	$(NULL)
+EXTRA_DIST += $(pam_lfs_files)
+
 if ENABLE_REDHAT_PAM_CONFIG
 pam_files = $(pam_redhat_files)
 endif
@@ -122,6 +131,9 @@ endif
 if ENABLE_EXHERBO_PAM_CONFIG
 pam_files = $(pam_exherbo_files)
 endif
+if ENABLE_LFS_PAM_CONFIG
+pam_files = $(pam_lfs_files)
+endif
 
 EXTRA_DIST +=			\
 	$(schemas_in_files)	\
diff --git a/data/pam-lfs/gdm-autologin.pam b/data/pam-lfs/gdm-autologin.pam
new file mode 100644
index 0000000..42ea4d3
--- /dev/null
+++ b/data/pam-lfs/gdm-autologin.pam
@@ -0,0 +1,17 @@
+# Begin /etc/pam.d/gdm-autologin
+
+auth     requisite      pam_nologin.so
+auth     required       pam_env.so
+
+auth     required       pam_succeed_if.so uid >= 1000 quiet
+auth     required       pam_permit.so
+
+account  include        system-account
+
+password include        system-password
+
+session  optional       pam_keyinit.so revoke
+session  required       pam_limits.so
+session  include        system-session
+
+# End /etc/pam.d/gdm-autologin
diff --git a/data/pam-lfs/gdm-fingerprint.pam b/data/pam-lfs/gdm-fingerprint.pam
new file mode 100644
index 0000000..45a7490
--- /dev/null
+++ b/data/pam-lfs/gdm-fingerprint.pam
@@ -0,0 +1,18 @@
+# Begin /etc/pam.d/gdm-fingerprint
+
+auth     requisite      pam_nologin.so
+auth     required       pam_env.so
+
+auth     requisite      pam_fprintd.so
+auth     required       pam_succeed_if.so uid >= 1000 quiet
+auth     required       pam_deny.so
+
+account  include        system-account
+
+password required       pam_deny.so
+
+session  optional       pam_keyinit.so revoke
+session  required       pam_limits.so
+session  include        system-session
+
+# End /etc/pam.d/gdm-fingerprint
diff --git a/data/pam-lfs/gdm-launch-environment.pam b/data/pam-lfs/gdm-launch-environment.pam
new file mode 100644
index 0000000..93827fc
--- /dev/null
+++ b/data/pam-lfs/gdm-launch-environment.pam
@@ -0,0 +1,14 @@
+# Begin /etc/pam.d/gdm-welcome
+
+auth     required       pam_env.so
+auth     required       pam_permit.so
+
+account  required       pam_nologin.so
+account  include        system-account
+
+password required       pam_deny.so
+
+session  required       pam_loginuid.so
+session  optional       pam_keyinit.so force revoke
+
+# End /etc/pam.d/gdm-welcome
diff --git a/data/pam-lfs/gdm-password.pam b/data/pam-lfs/gdm-password.pam
new file mode 100644
index 0000000..34ba17e
--- /dev/null
+++ b/data/pam-lfs/gdm-password.pam
@@ -0,0 +1,18 @@
+# Begin /etc/pam.d/gdm-password
+
+auth     requisite      pam_nologin.so
+auth     required       pam_env.so
+
+auth     required       pam_succeed_if.so uid >= 1000 quiet
+auth     include        system-auth
+auth     optional       pam_gnome_keyring.so
+
+account  include        system-account
+
+session  required       pam_limits.so
+session  include        system-session
+session  optional       pam_gnome_keyring.so auto_start
+
+password include        system-password
+
+# End /etc/pam.d/gdm-password
diff --git a/data/pam-lfs/gdm-smartcard.pam b/data/pam-lfs/gdm-smartcard.pam
new file mode 100644
index 0000000..69ed934
--- /dev/null
+++ b/data/pam-lfs/gdm-smartcard.pam
@@ -0,0 +1,18 @@
+# Begin /etc/pam.d/gdm-smartcard
+
+auth     requisite      pam_nologin.so
+auth     required       pam_env.so
+
+auth     requisite      pam_pkcs11.so wait_for_card card_only
+auth     required       pam_succeed_if.so uid >= 1000 quiet
+auth     required       pam_deny.so
+
+account  include        system-account
+
+password required       pam_pkcs11.so
+
+session  optional       pam_keyinit.so revoke
+session  required       pam_limits.so
+session  include        system-session
+
+# End /etc/pam.d/gdm-smartcard
diff --git a/data/pam-lfs/gdm.pam b/data/pam-lfs/gdm.pam
new file mode 100644
index 0000000..4d26c43
--- /dev/null
+++ b/data/pam-lfs/gdm.pam
@@ -0,0 +1,18 @@
+# Begin /etc/pam.d/gdm
+
+auth     requisite      pam_nologin.so
+auth     required       pam_env.so
+
+auth     required       pam_succeed_if.so uid >= 1000 quiet
+auth     include        system-auth
+auth     optional       pam_gnome_keyring.so
+
+account  include        system-account
+
+session  required       pam_limits.so
+session  include        system-session
+session  optional       pam_gnome_keyring.so auto_start
+
+password include        system-password
+
+# End /etc/pam.d/gdm
