Entry                   p = { 0 }, *e = NULL;
        Attribute               *at,
                                *at_objectClass = NULL;
+       ObjectClass             *soc = NULL;
        struct berval           scname = BER_BVNULL;
        struct berval           pdn;
        struct berval           realdn = BER_BVNULL;
                        goto done;
                }
 
-               rs->sr_err = structural_class( at->a_vals, &scname, NULL,
+               rs->sr_err = structural_class( at->a_vals, &soc, NULL,
                                &text, buf, sizeof( buf ), op->o_tmpmemctx );
                if ( rs->sr_err != LDAP_SUCCESS ) {
                        Debug( LDAP_DEBUG_TRACE, "   backsql_add(\"%s\"): "
                        e = NULL;
                        goto done;
                }
+               scname = soc->soc_cname;
 
        } else {
                scname = at->a_vals[0];
 
                        const char      *text = NULL;
                        char            textbuf[ 1024 ];
                        size_t          textlen = sizeof( textbuf );
-                       struct berval   soc,
-                                       bv[ 2 ],
+                       ObjectClass     *soc = NULL;
+                       struct berval   bv[ 2 ],
                                        *nvals;
                        int             rc = LDAP_SUCCESS;
 
                                return rc;
                        }
 
-                       if ( !bvmatch( &soc, &bsi->bsi_oc->bom_oc->soc_cname ) ) {
+                       if ( !bvmatch( &soc->soc_cname, &bsi->bsi_oc->bom_oc->soc_cname ) ) {
                                Debug( LDAP_DEBUG_TRACE, "backsql_id2entry(%s): "
                                        "computed structuralObjectClass %s "
                                        "does not match objectClass %s associated "
                                        "to entry\n",
-                                       bsi->bsi_e->e_name.bv_val, soc.bv_val,
+                                       bsi->bsi_e->e_name.bv_val, soc->soc_cname.bv_val,
                                        bsi->bsi_oc->bom_oc->soc_cname.bv_val );
                                backsql_entry_clean( op, bsi->bsi_e );
                                return rc;
 
                                *e = NULL;
        int                     manageDSAit = get_manageDSAit( op );
        struct berval           *newSuperior = op->oq_modrdn.rs_newSup;
-       char                    *next;
  
        Debug( LDAP_DEBUG_TRACE, "==>backsql_modrdn() renaming entry \"%s\", "
                        "newrdn=\"%s\", newSuperior=\"%s\"\n",