diff --git a/servers/slapd/back-bdb/init.c b/servers/slapd/back-bdb/init.c
index 5087e0418fb3b4262cf6660dbad3eb9e2b8a545c..ba4692e83cbc0a04a82eb8dff1cc58f9014f86d3 100644
--- a/servers/slapd/back-bdb/init.c
+++ b/servers/slapd/back-bdb/init.c
@@ -119,7 +119,7 @@ bdb_bt_compare(
 	const DBT *curkey
 )
 {
-	unsigned char *u, *c;
+	unsigned char x, *u, *c;
 	int i;
 
 	u = usrkey->data;
@@ -131,9 +131,10 @@ bdb_bt_compare(
 	for( i = sizeof(ID)-1; i >= 0; i--)
 #endif
 	{
-		if( u[i] - c[i] )
-			return u[i] - c[i];
+		x = u[i] - c[i];
+		if( x ) return x;
 	}
+
 	return 0;
 }