anchor.diff:                      [MgcNode, MgNode]),
                     Nodes = [MgcNode, MgNode],
                     ok = ?START_NODES(Nodes),
  -                  Nodes
  +                  Factor = case lists:keysearch(megaco_factor, 1, Config) of
  +                               {value, {megaco_factor, MF}} ->
  +                                   MF;
  +                               false ->
  +                                   ?SKIP(factor_undefined)
  +                           end,
  +                  MaxCount =
  +                      if
  +                          (Factor =:= 1) ->
  +                              20;
  +                          (Factor =:= 2) ->
  +                              15;
  +                          (Factor < 5) ->
  +                              10;
  +                          true ->
  +                              5
  +                      end,
  +                  #{nodes     => Nodes,
  +                    max_count => MaxCount,
  +                    ttimeout  => ?SECS(10),
  +                    timeout   => ?SECS(60)}
             end,
       Case = fun do_multi_ack_timeout/1,
  -    Post = fun(Nodes) ->
  +    Post = fun(#{nodes := Nodes}) ->
                      d("stop nodes"),
                      ?STOP_NODES(lists:reverse(Nodes))
              end,
  -    try_tc(multi_ack_timeout, Pre, Case, Post).
  -
  -do_multi_ack_timeout([MgcNode, MgNode]) ->
  -
  -    MaxCount = 20,
  +    try_tc(multi_ack_timeout, Cond, Pre, Case, Post).
  +
  +do_multi_ack_timeout(#{nodes     := [MgcNode, MgNode],
  +                       max_count := MaxCount,
  +                       ttimeout  := TTimeout,
  +                       timeout   := Timeout}) ->
   
       %% Start the MGC and MGs
       i("[MGC] start"),    
  
positive.code:     MgMid = {deviceName, "mg"},
      MgConfig = [{auto_ack,           true}, 
  		{trans_ack,          true},
  		{trans_timer,        10000}, 
  		{trans_ack_maxcount, MaxCount + 10}],
      Mg = ?MG_START(MgNode, MgMid, text, tcp, MgConfig, ?MG_VERBOSITY),
  
  
negative.code: multi_ack_timeout(doc) ->
      [];
  multi_ack_timeout(Config) when is_list(Config) ->
      Cond = fun() ->
                     %% Regardless of other criteria,
                     %% if the factor is to high => SKIP
                     case lists:keysearch(megaco_factor, 1, Config) of
                         {value, {megaco_factor, MF}} when (MF >= 10) ->
                             ?SKIP({factor_too_high, MF});
                         {value, _} ->
                             ok;
                         false ->
                             ?SKIP(factor_undefined)
                     end,
                     
                     Skippable = [win32, {unix, [darwin, sunos]}],
                     Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
                     ?NON_PC_TC_MAYBE_SKIP(Config, Condition)
             end,
      Pre = fun() ->
                    MgcNode  = make_node_name(mgc),
                    MgNode   = make_node_name(mg),
                    d("start nodes: "
  