method private _vtable_gui_update_answer = fun row_ref vtable input ->
    try
      let new_vtable = Dbf_misc.unopt input.VTGUI.vtgi_vtable in
        if vtable.SQL_db.vt_name <> new_vtable.SQL_db.vt_name then
          SQL_db.rename_vtable vtable new_vtable.SQL_db.vt_name;
        (* FIXME: change SQL interface *)
        vtable.SQL_db.vt_ftable <- new_vtable.SQL_db.vt_ftable;
        vtable.SQL_db.vt_join   <- new_vtable.SQL_db.vt_join;
        vtable_model#update_display row_ref#iter
    with
      | SQL_db.Duplicated_name name ->
          raise (Invalid_input "Name already used")