let add_persistante_marks proj fi node_marks orig propagate actions =
  let new_fi_marks, actions = 
    Fct_slice.add_marks_to_fi proj fi node_marks propagate actions 
  in
  let actions = match M.fi_slices fi with 
    | [] -> (* no slice *)
        let actions = 
          if orig then
            let _ff, new_actions = Fct_slice.make_new_ff fi true in
              (* TODO catch NoPdg and mark fi as Top *)
              new_actions @ actions 
          else actions
        in actions
    | slices -> 
        let add_filter acc ff =
          let a = SlicingActions.mk_ff_user_select ff node_marks in a::acc
        in
          List.fold_left add_filter actions slices 
  in
  let actions = 
    if propagate && new_fi_marks then
      let a = SlicingActions.mk_appli_select_calls fi in actions @ [a]
    else actions
  in actions