anchor.diff:      end.
   
   
  -handle_callback_info(Info, #state{cbinfo=CbInfo}=State) ->
  -    case CbInfo#cbinfo.info_fun of
  +handle_callback(Type, [#state{cbinfo=CbInfo}=State | Args]) ->
  +    Cb = case Type of
  +	info -> CbInfo#cbinfo.info_fun;
  +	call -> CbInfo#cbinfo.call_fun
  +    end,
  +    case Cb of
           undefined ->
               {noreply, State, State#state.timeout};
  -        InfoFun ->
  +        CbFun ->
               {_, CbState} = State#state.cbstate,
               CbMod = CbInfo#cbinfo.module,
  -            Res   = CbMod:InfoFun(Info, CbState),
  +            Res   = erlang:apply(CbMod, CbFun, Args ++ [CbState]),
               case handle_callback_result(Res, State) of
                   {ok, State1, Timeout} -> {noreply, State1, Timeout};
                   {stop, State1}        -> {stop, normal, State1}
  
positive.code: 
  %% ----
  %% Skip all sync requests
  handle_call(_Req, _From, State) ->
      {reply, ok, State, State#state.timeout}.
  
  
  %% ----
  
negative.code:     State1 = State#state{wait_pong_frame=false},
      case get_opts(drop_on_timeout, State1#state.opts) of
          true  -> handle_abnormal_closure(State1);
          false -> handle_callback(info, [timeout, State1])
      end;
  
  %% Close timeout: just shutdown the gen_server
  