let unlink_index = fun index ->
    let (indexes, to_be_removed) =
      List.partition (fun idx -> idx.idx_name <> index.idx_name)
        index.idx_db.db_indexes
    in
      index.idx_db.db_indexes <- indexes;
      match to_be_removed with
        | [idx] -> idx.idx_db <- (Obj.magic 0)
        | _     -> Dbf_misc.ie ()