diff --git a/contrib/slapd-modules/autogroup/autogroup.c b/contrib/slapd-modules/autogroup/autogroup.c
index 4019076ee1282e4013928dddeb123f42e40df646..c4e2fd83b6ebdc5478af45485e494388bacc9050 100644
--- a/contrib/slapd-modules/autogroup/autogroup.c
+++ b/contrib/slapd-modules/autogroup/autogroup.c
@@ -112,11 +112,10 @@ autogroup_add_member_to_group( Operation *op, BerValue *dn, BerValue *ndn, autog
 	slap_callback	cb = { NULL, slap_null_cb, NULL, NULL };
 	Operation	o = *op;
 
-	Debug(LDAP_DEBUG_TRACE, "==> autogroup_add_member_to_group adding <%s> to <%s>\n",
-		dn->bv_val, age->age_dn.bv_val, 0);
-
 	assert( dn != NULL );
 	assert( ndn != NULL );
+	Debug(LDAP_DEBUG_TRACE, "==> autogroup_add_member_to_group adding <%s> to <%s>\n",
+		dn->bv_val, age->age_dn.bv_val, 0);
 
 	vals = (BerValue *)ch_calloc( 2, sizeof( BerValue ) );
 	nvals = (BerValue *)ch_calloc( 2, sizeof( BerValue ) );
@@ -166,11 +165,10 @@ autogroup_add_member_values_to_group( Operation *op, Entry *e, autogroup_entry_t
 	slap_callback	cb = { NULL, slap_null_cb, NULL, NULL };
 	Operation	o = *op;
 
+	assert( e != NULL );
 	Debug(LDAP_DEBUG_TRACE, "==> autogroup_add_member_values_to_group adding <%s> to <%s>\n",
 		e->e_name.bv_val, age->age_dn.bv_val, 0);
 
-	assert( e != NULL );
-
 	attr = attrs_find( e->e_attrs, attrdesc );
 	if (!attr) {
 		// Nothing to add
@@ -279,11 +277,10 @@ autogroup_delete_member_values_from_group( Operation *op, Entry *e, autogroup_en
         slap_callback   cb = { NULL, slap_null_cb, NULL, NULL };
         Operation       o = *op;
 
+        assert( e != NULL );
         Debug(LDAP_DEBUG_TRACE, "==> autogroup_delete_member_values_from_group removing <%s> from <%s>\n",
                 e->e_name.bv_val, age->age_dn.bv_val, 0);
 
-        assert( e != NULL );
-
         attr = attrs_find( e->e_attrs, attrdesc );
         if (!attr) {
                 // Nothing to add
diff --git a/libraries/libldap/ldap_sync.c b/libraries/libldap/ldap_sync.c
index cc64e24a216a7e0395b38507ff2ca310b8210ec8..b7247a2d7d0dbbc45d03938fe3fc3a43bbea7f01 100644
--- a/libraries/libldap/ldap_sync.c
+++ b/libraries/libldap/ldap_sync.c
@@ -135,7 +135,7 @@ ldap_sync_search_entry( ldap_sync_t *ls, LDAPMessage *res )
 				cookie = { 0 };
 	int			state = -1;
 	ber_len_t		len;
-	ldap_sync_refresh_t	phase = ls->ls_refreshPhase;
+	ldap_sync_refresh_t	phase;
 
 #ifdef LDAP_SYNC_TRACE
 	fprintf( stderr, "\tgot LDAP_RES_SEARCH_ENTRY\n" );
@@ -144,6 +144,8 @@ ldap_sync_search_entry( ldap_sync_t *ls, LDAPMessage *res )
 	assert( ls != NULL );
 	assert( res != NULL );
 
+	phase = ls->ls_refreshPhase;
+
 	/* OK */
 
 	/* extract:
diff --git a/libraries/librewrite/rule.c b/libraries/librewrite/rule.c
index 34b9393969ddbb3ba49f00c0a8dd3e52d6c16838..6f80f161e41c3d6a4659dbd037bd93cdf5c8ed2c 100644
--- a/libraries/librewrite/rule.c
+++ b/libraries/librewrite/rule.c
@@ -125,7 +125,7 @@ rewrite_rule_compile(
 {
 	int flags = REWRITE_REGEX_EXTENDED | REWRITE_REGEX_ICASE;
 	int mode = REWRITE_RECURSE;
-	int max_passes = info->li_max_passes_per_rule;
+	int max_passes;
 
 	struct rewrite_rule *rule = NULL;
 	struct rewrite_subst *subst = NULL;
@@ -137,11 +137,12 @@ rewrite_rule_compile(
 	assert( context != NULL );
 	assert( pattern != NULL );
 	assert( result != NULL );
-
 	/*
 	 * A null flagstring should be allowed
 	 */
 
+	max_passes = info->li_max_passes_per_rule;
+
 	/*
 	 * Take care of substitution string
 	 */
diff --git a/servers/slapd/back-bdb/tools.c b/servers/slapd/back-bdb/tools.c
index 735845e4590736cff256b1d563d60e127605c67a..3c585b0367fccecc53a72772cf7782cb33c7f221 100644
--- a/servers/slapd/back-bdb/tools.c
+++ b/servers/slapd/back-bdb/tools.c
@@ -245,10 +245,12 @@ ID bdb_tool_entry_next(
 {
 	int rc;
 	ID id;
-	struct bdb_info *bdb = (struct bdb_info *) be->be_private;
+	struct bdb_info *bdb;
 
 	assert( be != NULL );
 	assert( slapMode & SLAP_TOOL_MODE );
+
+	bdb = (struct bdb_info *) be->be_private;
 	assert( bdb != NULL );
 
 next:;
@@ -634,7 +636,7 @@ ID bdb_tool_entry_put(
 	struct berval *text )
 {
 	int rc;
-	struct bdb_info *bdb = (struct bdb_info *) be->be_private;
+	struct bdb_info *bdb;
 	DB_TXN *tid = NULL;
 	Operation op = {0};
 	Opheader ohdr = {0};
@@ -649,6 +651,8 @@ ID bdb_tool_entry_put(
 	Debug( LDAP_DEBUG_TRACE, "=> " LDAP_XSTRING(bdb_tool_entry_put)
 		"( %ld, \"%s\" )\n", (long) e->e_id, e->e_dn, 0 );
 
+	bdb = (struct bdb_info *) be->be_private;
+
 	if (! (slapMode & SLAP_TOOL_QUICK)) {
 	rc = TXN_BEGIN( bdb->bi_dbenv, NULL, &tid, 
 		bdb->bi_db_opflags );
@@ -882,7 +886,7 @@ ID bdb_tool_entry_modify(
 	struct berval *text )
 {
 	int rc;
-	struct bdb_info *bdb = (struct bdb_info *) be->be_private;
+	struct bdb_info *bdb;
 	DB_TXN *tid = NULL;
 	Operation op = {0};
 	Opheader ohdr = {0};
@@ -900,6 +904,8 @@ ID bdb_tool_entry_modify(
 		"=> " LDAP_XSTRING(bdb_tool_entry_modify) "( %ld, \"%s\" )\n",
 		(long) e->e_id, e->e_dn, 0 );
 
+	bdb = (struct bdb_info *) be->be_private;
+
 	if (! (slapMode & SLAP_TOOL_QUICK)) {
 		if( cursor ) {
 			cursor->c_close( cursor );
diff --git a/servers/slapd/back-sql/entry-id.c b/servers/slapd/back-sql/entry-id.c
index 456aa049c90bbbfb5c20e21f6c8b4c4d0e9910d0..7dec34a8092198d19bc9ec601e2fc61481ac8459 100644
--- a/servers/slapd/back-sql/entry-id.c
+++ b/servers/slapd/back-sql/entry-id.c
@@ -507,7 +507,7 @@ backsql_get_attr_vals( void *v_at, void *v_bsi )
 {
 	backsql_at_map_rec	*at = v_at;
 	backsql_srch_info	*bsi = v_bsi;
-	backsql_info		*bi = (backsql_info *)bsi->bsi_op->o_bd->be_private;
+	backsql_info		*bi;
 	RETCODE			rc;
 	SQLHSTMT		sth = SQL_NULL_HSTMT;
 	BACKSQL_ROW_NTS		row;
@@ -531,12 +531,13 @@ backsql_get_attr_vals( void *v_at, void *v_bsi )
 
 	assert( at != NULL );
 	assert( bsi != NULL );
-
 	Debug( LDAP_DEBUG_TRACE, "==>backsql_get_attr_vals(): "
 		"oc=\"%s\" attr=\"%s\" keyval=" BACKSQL_IDFMT "\n",
 		BACKSQL_OC_NAME( bsi->bsi_oc ), at->bam_ad->ad_cname.bv_val, 
 		BACKSQL_IDARG(bsi->bsi_c_eid->eid_keyval) );
 
+	bi = (backsql_info *)bsi->bsi_op->o_bd->be_private;
+
 #ifdef BACKSQL_PRETTY_VALIDATE
 	validate = at->bam_true_ad->ad_type->sat_syntax->ssyn_validate;
 	pretty =  at->bam_true_ad->ad_type->sat_syntax->ssyn_pretty;
diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c
index c5b01a06b42320da84e9d3f8608e606bac77a708..0982a22485d7e2f78b5084b09c6ba51f43e54574 100644
--- a/servers/slapd/backend.c
+++ b/servers/slapd/backend.c
@@ -1791,9 +1791,9 @@ backend_access(
 	slap_mask_t		*mask )
 {
 	Entry		*e = NULL;
-	void		*o_priv = op->o_private, *e_priv = NULL;
+	void		*o_priv, *e_priv = NULL;
 	int		rc = LDAP_INSUFFICIENT_ACCESS;
-	Backend		*be = op->o_bd;
+	Backend		*be;
 
 	/* pedantic */
 	assert( op != NULL );
@@ -1801,6 +1801,9 @@ backend_access(
 	assert( edn != NULL );
 	assert( access > ACL_NONE );
 
+	be = op->o_bd;
+	o_priv = op->o_private;
+
 	if ( !op->o_bd ) {
 		op->o_bd = select_backend( edn, 0 );
 	}
diff --git a/servers/slapd/backover.c b/servers/slapd/backover.c
index e3a6b7c58d61a33a6bd9c0e97a119540641de786..cad81abbe866b1d0044e85df7bde6cb402a3a5ca 100644
--- a/servers/slapd/backover.c
+++ b/servers/slapd/backover.c
@@ -474,15 +474,16 @@ over_acl_group(
 {
 	slap_overinfo *oi;
 	slap_overinst *on;
-	BackendInfo *bi = op->o_bd->bd_info;
+	BackendInfo *bi;
 	BackendDB *be = op->o_bd, db;
 	int rc = SLAP_CB_CONTINUE;
 
 	/* FIXME: used to happen for instance during abandon
 	 * when global overlays are used... */
-	assert( op->o_bd != NULL );
+	assert( be != NULL );
 
-	oi = op->o_bd->bd_info->bi_private;
+	bi = be->bd_info;
+	oi = bi->bi_private;
 	on = oi->oi_list;
 
 	for ( ; on; on = on->on_next ) {
@@ -542,15 +543,16 @@ over_acl_attribute(
 {
 	slap_overinfo *oi;
 	slap_overinst *on;
-	BackendInfo *bi = op->o_bd->bd_info;
+	BackendInfo *bi;
 	BackendDB *be = op->o_bd, db;
 	int rc = SLAP_CB_CONTINUE;
 
 	/* FIXME: used to happen for instance during abandon
 	 * when global overlays are used... */
-	assert( op->o_bd != NULL );
+	assert( be != NULL );
 
-	oi = op->o_bd->bd_info->bi_private;
+	bi = be->bd_info;
+	oi = bi->bi_private;
 	on = oi->oi_list;
 
 	for ( ; on; on = on->on_next ) {
diff --git a/servers/slapd/cr.c b/servers/slapd/cr.c
index 558411372775599461ecef188886a0e2378cde73..1e75a66fa290a264b23b9c1e12b2bbef03d8a703 100644
--- a/servers/slapd/cr.c
+++ b/servers/slapd/cr.c
@@ -120,6 +120,8 @@ cr_insert(
 	struct cindexrec	*cir;
 	char			**names;
 
+	assert( scr != NULL );
+
 	if ( scr->scr_oid ) {
 		cir = (struct cindexrec *)
 			ch_calloc( 1, sizeof(struct cindexrec) );
@@ -127,9 +129,6 @@ cr_insert(
 		cir->cir_name.bv_len = strlen( scr->scr_oid );
 		cir->cir_cr = scr;
 
-		assert( cir->cir_name.bv_val != NULL );
-		assert( cir->cir_cr != NULL );
-
 		if ( avl_insert( &cr_index, (caddr_t) cir,
 		                 cr_index_cmp, avl_dup_error ) )
 		{
@@ -150,9 +149,6 @@ cr_insert(
 			cir->cir_name.bv_len = strlen( *names );
 			cir->cir_cr = scr;
 
-			assert( cir->cir_name.bv_val != NULL );
-			assert( cir->cir_cr != NULL );
-
 			if ( avl_insert( &cr_index, (caddr_t) cir,
 			                 cr_index_cmp, avl_dup_error ) )
 			{
diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c
index 74bd594e7602634d68bad0ee7440a0307e9e18d6..cb4c6951655718bf4b97b278512bea16fa2ec61b 100644
--- a/servers/slapd/dn.c
+++ b/servers/slapd/dn.c
@@ -703,11 +703,10 @@ dnPrettyNormal(
 	struct berval *normal,
 	void *ctx)
 {
-	Debug( LDAP_DEBUG_TRACE, ">>> dnPrettyNormal: <%s>\n", val->bv_val ? val->bv_val : "", 0, 0 );
-
 	assert( val != NULL );
 	assert( pretty != NULL );
 	assert( normal != NULL );
+	Debug( LDAP_DEBUG_TRACE, ">>> dnPrettyNormal: <%s>\n", val->bv_val ? val->bv_val : "", 0, 0 );
 
 	if ( val->bv_len == 0 ) {
 		ber_dupbv_x( pretty, val, ctx );
@@ -1169,11 +1168,13 @@ dnIsSuffix(
 	const struct berval *dn,
 	const struct berval *suffix )
 {
-	int	d = dn->bv_len - suffix->bv_len;
+	int	d;
 
 	assert( dn != NULL );
 	assert( suffix != NULL );
 
+	d = dn->bv_len - suffix->bv_len;
+
 	/* empty suffix matches any dn */
 	if ( suffix->bv_len == 0 ) {
 		return 1;
diff --git a/servers/slapd/oc.c b/servers/slapd/oc.c
index 8888816faa0fa108a48f0d857574054f21f40157..5c4f6a984f610cac04acc66c90dc7f1f87cb2e29 100644
--- a/servers/slapd/oc.c
+++ b/servers/slapd/oc.c
@@ -637,6 +637,8 @@ oc_insert(
 		assert( oc_bvfind( &oir->oir_name ) != NULL );
 	}
 
+	assert( soc != NULL );
+
 	if ( (names = soc->soc_names) ) {
 		while ( *names ) {
 			oir = (struct oindexrec *)
@@ -645,9 +647,6 @@ oc_insert(
 			oir->oir_name.bv_len = strlen( *names );
 			oir->oir_oc = soc;
 
-			assert( oir->oir_name.bv_val != NULL );
-			assert( oir->oir_oc != NULL );
-
 			if ( avl_insert( &oc_index, (caddr_t) oir,
 				oc_index_cmp, avl_dup_error ) )
 			{
diff --git a/servers/slapd/overlays/ppolicy.c b/servers/slapd/overlays/ppolicy.c
index 3c6cef86aa463df9379a5f25e131529e1ccabaec..43cc345d3ee9bf150cdf1ca4ad08f7ed0e3a49a5 100644
--- a/servers/slapd/overlays/ppolicy.c
+++ b/servers/slapd/overlays/ppolicy.c
@@ -587,13 +587,15 @@ static int
 check_password_quality( struct berval *cred, PassPolicy *pp, LDAPPasswordPolicyError *err, Entry *e, char **txt )
 {
 	int rc = LDAP_SUCCESS, ok = LDAP_SUCCESS;
-	char *ptr = cred->bv_val;
+	char *ptr;
 	struct berval sch;
 
 	assert( cred != NULL );
 	assert( pp != NULL );
 	assert( txt != NULL );
 
+	ptr = cred->bv_val;
+
 	*txt = NULL;
 
 	if ((cred->bv_len == 0) || (pp->pwdMinLength > cred->bv_len)) {
diff --git a/servers/slapd/value.c b/servers/slapd/value.c
index c33ae1afc5bb18ba4a5dcd3d84aa3c1a287edc8f..48be7682faac358b07d88e7c89386ed445474062 100644
--- a/servers/slapd/value.c
+++ b/servers/slapd/value.c
@@ -469,7 +469,7 @@ ordered_value_pretty(
 	struct berval *out,
 	void *ctx )
 {
-	struct berval	bv = *val,
+	struct berval	bv,
 			idx = BER_BVNULL;
 	int		rc;
 
@@ -478,6 +478,8 @@ ordered_value_pretty(
 	assert( val != NULL );
 	assert( out != NULL );
 
+	bv = *val;
+
 	if ( ad->ad_type->sat_flags & SLAP_AT_ORDERED ) {
 
 		/* Skip past the assertion index */
@@ -538,7 +540,7 @@ ordered_value_normalize(
 	struct berval *normalized,
 	void *ctx )
 {
-	struct berval	bv = *val,
+	struct berval	bv,
 			idx = BER_BVNULL;
 	int		rc;
 
@@ -547,6 +549,8 @@ ordered_value_normalize(
 	assert( val != NULL );
 	assert( normalized != NULL );
 
+	bv = *val;
+
 	if ( ad->ad_type->sat_flags & SLAP_AT_ORDERED ) {
 
 		/* Skip past the assertion index */