static slap_mask_t index_mask(
        Backend *be,
        AttributeDescription *desc,
-       char **dbname,
        struct berval *atname )
 {
        AttributeType *at;
 
        if( mask ) {
                *atname = desc->ad_cname;
-               *dbname = desc->ad_cname.bv_val;
                return mask;
        }
 
 
                if ( mask && ( mask ^ SLAP_INDEX_NOTAGS ) ) {
                        *atname = desc->ad_type->sat_cname;
-                       *dbname = desc->ad_type->sat_cname.bv_val;
                        return mask;
                }
        }
 
                if ( mask && ( mask ^ SLAP_INDEX_NOSUBTYPES ) ) {
                        *atname = at->sat_cname;
-                       *dbname = at->sat_cname.bv_val;
                        return mask;
                }
        }
        AttributeDescription *desc )
 {
        slap_mask_t mask;
-       char *dbname;
        struct berval prefix;
 
-       mask = index_mask( be, desc, &dbname, &prefix );
+       mask = index_mask( be, desc, &prefix );
 
        if( mask == 0 ) {
                return LDAP_INAPPROPRIATE_MATCHING;
        int rc;
        slap_mask_t mask;
        DB *db;
-       char *dbname;
 
-       mask = index_mask( be, desc, &dbname, prefixp );
+       mask = index_mask( be, desc, prefixp );
 
        if( mask == 0 ) {
                return LDAP_INAPPROPRIATE_MATCHING;
        }
 
-       rc = bdb_db_cache( be, NULL, dbname, &db );
+       rc = bdb_db_cache( be, NULL, prefixp->bv_val, &db );
 
        if( rc != LDAP_SUCCESS ) {
                return rc;
 static int indexer(
        Backend *be,
        DB_TXN *txn,
-       char *dbname,
        struct berval *atname,
        BerVarray vals,
        ID id,
 
        assert( mask );
 
-       rc = bdb_db_cache( be, txn, dbname, &db );
+       rc = bdb_db_cache( be, txn, atname->bv_val, &db );
        
        if ( rc != LDAP_SUCCESS ) {
 #ifdef NEW_LOGGING
                LDAP_LOG( INDEX, ERR, 
-                       "bdb_index_read: Could not open DB %s\n", dbname, 0, 0 );
+                       "bdb_index_read: Could not open DB %s\n",
+                       atname->bv_val, 0, 0 );
 #else
                Debug( LDAP_DEBUG_ANY,
-                       "<= bdb_index_read NULL (could not open %s)\n",
-                       dbname, 0, 0 );
+                       "bdb_index_read: Could not open DB %s\n",
+                       atname->bv_val, 0, 0 );
 #endif
                return LDAP_OTHER;
        }
        }
 
        if( mask ) {
-               rc = indexer( be, txn, type->sat_cname.bv_val,
-                       &type->sat_cname,
+               rc = indexer( be, txn, &type->sat_cname,
                        vals, id, op,
                        mask );
 
                }
 
                if( mask ) {
-                       rc = indexer( be, txn, desc->ad_cname.bv_val,
-                               &desc->ad_cname,
+                       rc = indexer( be, txn, &desc->ad_cname,
                                vals, id, op,
                                mask );