diff --git a/CHANGELOG b/CHANGELOG
index 1c147c5..74d39fd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -41,6 +41,7 @@
 - fix handling of LDAP base dns with spaces.
 - handle MTAB_NOTUPDATED status return from mount.
 - when default master map, auto.master, is used also check for auto_master.
+- fix schema selection in LDAP schema discovery.
 
 18/06/2007 autofs-5.0.2
 -----------------------
diff --git a/modules/lookup_ldap.c b/modules/lookup_ldap.c
index dfb3054..8719af9 100644
--- a/modules/lookup_ldap.c
+++ b/modules/lookup_ldap.c
@@ -193,10 +193,11 @@ static int get_query_dn(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt
 	LDAPMessage *result = NULL, *e;
 	struct ldap_searchdn *sdns = NULL;
 	char *attrs[2];
+	struct berval **value;
 	int scope;
 	int rv, l;
 
-	attrs[0] = LDAP_NO_ATTRS;
+	attrs[0] = (char *) key;
 	attrs[1] = NULL;
 
 	if (!ctxt->mapname && !ctxt->base) {
@@ -283,7 +284,8 @@ static int get_query_dn(unsigned logopt, LDAP *ldap, struct lookup_context *ctxt
 	}
 
 	e = ldap_first_entry(ldap, result);
-	if (e) {
+	if (e && (value = ldap_get_values_len(ldap, e, key))) {
+		ldap_value_free_len(value);
 		dn = ldap_get_dn(ldap, e);
 		debug(logopt, MODPREFIX "found query dn %s", dn);
 	} else {
