{
        int i;
        int rc;
+       int flags;
        struct bdb_info *bdb = (struct bdb_info *) be->be_private;
        struct bdb_db_info *db;
        char *file;
 #ifdef HAVE_EBCDIC
        __atoe( file );
 #endif
+       flags = bdb->bi_db_opflags | DB_CREATE | DB_THREAD;
+       if ( !tid ) flags |= DB_AUTO_COMMIT;
        rc = DB_OPEN( db->bdi_db, tid,
                file, name,
-               DB_HASH, bdb->bi_db_opflags | DB_CREATE | DB_THREAD,
+               DB_HASH, flags,
                bdb->bi_dbenv_mode );
 
        ch_free( file );
 
                        path,
                /*      bdbi_databases[i].name, */ NULL,
                        bdbi_databases[i].type,
-                       bdbi_databases[i].flags | flags,
+                       bdbi_databases[i].flags | flags | DB_AUTO_COMMIT,
                        bdb->bi_dbenv_mode );
 #else
                rc = DB_OPEN( db->bdi_db, NULL,
                        bdbi_databases[i].file,
                /*      bdbi_databases[i].name, */ NULL,
                        bdbi_databases[i].type,
-                       bdbi_databases[i].flags | flags,
+                       bdbi_databases[i].flags | flags | DB_AUTO_COMMIT,
                        bdb->bi_dbenv_mode );
 #endif