anchor.diff:      end,
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(HibernateAfterTimeout),
  -    is_in_erlang_hibernate(Pid),
  +    wait_erlang_hibernate(Pid),
       %% After call test
       hpong = gen_statem:call(Pid, hping),
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(HibernateAfterTimeout),
  -    is_in_erlang_hibernate(Pid),
  +    wait_erlang_hibernate(Pid),
       %% Timer test 1
  -    TimerTimeout1 = 50,
  -    ok = gen_statem:call(Pid, {arm_htimer, self(), TimerTimeout1}),
  +    TimerTimeout1 = HibernateAfterTimeout div 2,
  +    ok = gen_statem:call(Pid, {start_htimer, self(), TimerTimeout1}),
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(TimerTimeout1),
       is_not_in_erlang_hibernate(Pid),
       receive
  -        {Pid, htimer_armed} ->
  +        {Pid, htimer_timeout} ->
               ok
       after 1000 ->
           ct:fail(timer1)
       end,
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(HibernateAfterTimeout),
  -    is_in_erlang_hibernate(Pid),
  +    wait_erlang_hibernate(Pid),
       %% Timer test 2
  -    TimerTimeout2 = 150,
  -    ok = gen_statem:call(Pid, {arm_htimer, self(), TimerTimeout2}),
  +    TimerTimeout2 = HibernateAfterTimeout * 2,
  +    ok = gen_statem:call(Pid, {start_htimer, self(), TimerTimeout2}),
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(HibernateAfterTimeout),
  -    is_in_erlang_hibernate(Pid),
  -    receive
  -        {Pid, htimer_armed} ->
  +    wait_erlang_hibernate(Pid),
  +    receive
  +        {Pid, htimer_timeout} ->
               ok
  -    after 1000 ->
  +    after TimerTimeout2 ->
           ct:fail(timer2)
       end,
       is_not_in_erlang_hibernate(Pid),
       timer:sleep(HibernateAfterTimeout),
  -    is_in_erlang_hibernate(Pid),
  +    wait_erlang_hibernate(Pid),
       stop_it(Pid),
       process_flag(trap_exit, OldFl),
       receive
  
positive.code:     {ok,Pid0} =
  	gen_statem:start_link(
  	  ?MODULE, start_arg(Config, hiber_now), []),
      is_in_erlang_hibernate(Pid0),
      stop_it(Pid0),
      receive
  	{'EXIT',Pid0,normal} -> ok
  
negative.code:     {keep_state, Data};
  idle({call, From}, hping, _Data) ->
      {keep_state_and_data, [{reply, From, hpong}]};
  idle({call, From}, {start_htimer, Pid, Timeout}, _Data) ->
      {keep_state_and_data, [{reply, From, ok}, {timeout, Timeout, {htimer, Pid}}]};
  idle(timeout, {htimer, Pid}, _Data) ->
      Pid ! {self(), htimer_timeout},
      keep_state_and_data;
  idle(cast, {connect,Pid}, Data) ->
      Pid ! accept,
  