anchor.diff:      gen_server:cast(Proxy, stop).
   
   
  -%% @equiv call(Proxy. Msg, 5000).
  +%% @equiv call(Proxy, Msg, 5000)
   %% @end
   -spec call(Proxy :: dbus_proxy(), Msg :: dbus_message()) -> {ok, term()} | {error, term()}.
   call(Proxy, #dbus_message{}=Msg) ->
  
positive.code: 	     {member, SignalName},
  	     {path, Path}],
      case do_method(?DBUS_IFACE, ?DBUS_DBUS_ADD_MATCH, [build_match(Match, <<>>)], State) of
          {reply, ok, S2} -> 
              Handler = #signal_handler{sender=Name, interface=IfaceName, member=SignalName, 
                                        path={Path, false}, mfa=MFA},     
              {reply, ok, S2#state{handlers=[ Handler | Handlers ]}};
          {reply, {error, Err}, S2} -> {stop, {error, Err}, S2}
      end;
  
  handle_call({connect_signal, MFA}, _From, 
          #state{conn={dbus_bus_connection, Conn}, path=Path, uniquename=Name}=State) ->
      Ret = dbus_proxy:connect_signal(Conn, Name, '_', '_', Path, MFA),
      {reply, Ret, State};
  
  handle_call({connect_signal, IfaceName, SignalName, MFA}, _From, 
          #state{conn={dbus_bus_connection, Conn}, path=Path, uniquename=Name}=State) ->
      Ret = dbus_proxy:connect_signal(Conn, Name, IfaceName, SignalName, Path, MFA),
      {reply, Ret, State};
  
negative.code: %%
  %% @todo Describe handlers
  %% @end
  -spec connect_signal(Proxy :: dbus_proxy(), Handler :: handler()) ->
                  ok | {error, term()}.
  connect_signal(Proxy, MFA) ->
      gen_server:call(Proxy, {connect_signal, MFA}).
  
  
  %% @doc Connect to a particular signal
  %%
  %% @todo Describe handlers
  %% @end
  -spec connect_signal(Proxy :: dbus_proxy(),
               IfaceName :: dbus_name(),
               SignalName :: dbus_name(),
               Handler :: handler()) ->
                  ok | {error, term()}.
  connect_signal(Proxy, IfaceName, SignalName, MFA) ->
      gen_server:call(Proxy, {connect_signal, IfaceName, SignalName, MFA}).
  