diff --git a/CHANGES b/CHANGES
index 34967313fa68f4184e2ba739c7fd5fddc50e51f4..f6e4120a126fef22f70b806943b7fccd0b154194 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,7 @@ OpenLDAP 2.4 Change Log
 OpenLDAP 2.4.22 Engineering
 	Added slapd SLAP_SCHEMA_EXPOSE flag for hidden schema elements (ITS#6435)
 	Fixed slapd REP_ENTRY flag handling (ITS#5340)
+	Fixed slapd sasl auxprop_lookup (ITS#6441)
 	Fixed slapo-collect REP_ENTRY flag handling (ITS#5340,ITS#6423)
 	Fixed slapo-dynlist REP_ENTRY flag handling (ITS#5340,ITS#6423)
 	Fixed slapo-rwm olcRwmMap handling (ITS#6436)
diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c
index 1065072e8ae87116fc619d014d1e467c028d4322..34fa3c8b53926e55f1ac5d66e009e840d38b8d37 100644
--- a/servers/slapd/sasl.c
+++ b/servers/slapd/sasl.c
@@ -258,7 +258,11 @@ sasl_ap_lookup( Operation *op, SlapReply *rs )
 	return LDAP_SUCCESS;
 }
 
+#if SASL_VERSION_FULL >= 0x020118
+static int
+#else
 static void
+#endif
 slap_auxprop_lookup(
 	void *glob_context,
 	sasl_server_params_t *sparams,
@@ -271,6 +275,7 @@ slap_auxprop_lookup(
 	int i, doit = 0;
 	Connection *conn = NULL;
 	lookup_info sl;
+	int rc = LDAP_SUCCESS;
 
 	sl.list = sparams->utils->prop_get( sparams->propctx );
 	sl.sparams = sparams;
@@ -402,10 +407,13 @@ slap_auxprop_lookup(
 				/* FIXME: we want all attributes, right? */
 				op->ors_attrs = NULL;
 
-				op->o_bd->be_search( op, &rs );
+				rc = op->o_bd->be_search( op, &rs );
 			}
 		}
 	}
+#if SASL_VERSION_FULL >= 0x020118
+	return rc != LDAP_SUCCESS ? SASL_FAIL : SASL_OK;
+#endif
 }
 
 #if SASL_VERSION_FULL >= 0x020110