diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c
index f91f1959101e4d608971b63d8cbeec49eca26477..62b1600ec1e15b1b57e9c132188087a793a66e19 100644
--- a/servers/slapd/backglue.c
+++ b/servers/slapd/backglue.c
@@ -346,7 +346,7 @@ glue_op_search ( Operation *op, SlapReply *rs )
 	slap_overinst	*on = (slap_overinst *)op->o_bd->bd_info;
 	glueinfo		*gi = (glueinfo *)on->on_bi.bi_private;
 	BackendDB *b0 = op->o_bd;
-	BackendDB *btmp;
+	BackendDB *b1 = NULL, *btmp;
 	BackendInfo *bi0 = op->o_bd->bd_info;
 	int i;
 	long stoptime = 0, starttime;
@@ -385,6 +385,7 @@ glue_op_search ( Operation *op, SlapReply *rs )
 		tlimit0 = op->ors_tlimit;
 		dn = op->o_req_dn;
 		ndn = op->o_req_ndn;
+		b1 = op->o_bd;
 
 		/*
 		 * Execute in reverse order, most specific first 
@@ -399,9 +400,9 @@ glue_op_search ( Operation *op, SlapReply *rs )
 			}
 			if (!btmp || !btmp->be_search)
 				continue;
-			if (!dnIsSuffix(&btmp->be_nsuffix[0], &b0->be_nsuffix[0]))
+			if (!dnIsSuffix(&btmp->be_nsuffix[0], &b1->be_nsuffix[0]))
 				continue;
-			if (get_no_subordinate_glue(op) && btmp != b0)
+			if (get_no_subordinate_glue(op) && btmp != b1)
 				continue;
 			/* If we remembered which backend we were on before,
 			 * skip down to it now