anchor.diff:  	      unavailable -> services_unavailable
   	  end,
   
  +    %% See if we the service is already registered as a local
  +    %% service. If so, make sure that we don't send a service
  +    %% available to the URL tha originated the newly registered service.
  +    %%
  +    %% We also want to make sure that we don't send the notification
  +    %% to a local service more than once. 
  +    %% We will build up a list of blocked URLs not to resend to
  +    %% as we go along
  +    BlockURLs = case ets:lookup(?SERVICE_TABLE, SvcName)  of
  +		   [ #service_entry { url = URL } ]  -> [URL];
  +		   [] -> []
  +	       end,
  +			     
  +
       ets:foldl(
         %% Notify if this is not the originating service.
         fun(#service_entry { 
   	     service = ServiceEntry,
  -	     url = URL }, _Acc) when 
  -		ServiceEntry =/= SvcName ->
  -
  -	      dispatch_to_local_service(URL, Cmd, 
  -					{struct, [ { services, 
  -						     { array, [SvcName]}
  -						   }
  -						 ]}),
  -	      [];
  -
  -	 %% This is the originating service regsitering itself. Ignore.
  -	 (_, _) -> []
  -
  -      end, [], ?SERVICE_TABLE).
  +	     url = URL }, Acc) ->
  +
  +	      %% If the URL is not on the blackout
  +	      %% list, send a notification
  +	      case lists:member(URL, BlockURLs) of 
  +		  false ->
  +		      ?info("ANN: SvcEntry: ~p", [ ServiceEntry ]),
  +		      ?info("ANN: SvcName:  ~p", [ SvcName ]),
  +		      ?info("ANN: URL     : ~p", [ URL ]),
  +		      dispatch_to_local_service(URL, Cmd, 
  +						{struct, [ { services, 
  +							     { array, [SvcName]}
  +							   }
  +							 ]}),
  +		      %% Add the current URL to the blackout list
  +		      [URL | Acc]; 
  +
  +		  %% URL is on blackout list
  +		  true -> 
  +		      Acc
  +	      end
  +      end, BlockURLs, ?SERVICE_TABLE).
  
positive.code: 
  
  dispatch_to_local_service([ $w, $s, $: | WSPidStr], services_available, 
  			  [{ services, Services}] ) ->
      ?info("service_edge:dispatch_to_local_service(service_available, websock): ~p", [ Services]),
      wse:call(list_to_pid(WSPidStr), wse:window(),
  	     "services_available", 
  	     [ "services", Services ]),
      ok;
  
  dispatch_to_local_service([ $w, $s, $: | WSPidStr], services_unavailable, 
  			  [{ services, Services}] ) ->
      ?info("service_edge:dispatch_to_local_service(service_unavailable, websock): ~p", [ Services]),
      wse:call(list_to_pid(WSPidStr), wse:window(),
  	     "services_unavailable", 
  	     [ "services", Services ]),
  
negative.code:     { reply, [ invalid_command ], St}.
  
  
  		      
  handle_cast({rvi, service_available, [SvcName, _DataLinkModule] }, St) ->
      announce_service_availability(available, SvcName),
      { noreply, St };
  