anchor.diff:  	add_subscriber(Identity, list_to_binary(Password), Product, Buckets,
   			Attributes, EnabledStatus, MultiSession);
   add_subscriber(undefined, Password, Product, Buckets, Attributes, EnabledStatus, MultiSession)
  -		when is_binary(Password), is_list(Product), is_list(Buckets), is_list(Attributes),
  +		when is_binary(Password), is_list(Product), Product /= [], is_list(Buckets), is_list(Attributes),
   		is_boolean(EnabledStatus), is_boolean(MultiSession) ->
   	F2 = fun() ->
   				case mnesia:read(product, Product, read) of
  
positive.code: 	add_subscriber(Identity, Password, Product, Buckets, [], EnabledStatus, MultiSession);
  add_subscriber(Identity, Password, Product, undefined, Product, EnabledStatus, MultiSession) ->
  	add_subscriber(Identity, Password, Product, [], Product, EnabledStatus, MultiSession);
  add_subscriber(Identity, Password, undefined, Buckets, Attributes, EnabledStatus, MultiSession) ->
  	add_subscriber(Identity, Password, "", Buckets, Attributes, EnabledStatus, MultiSession);
  add_subscriber(Identity, undefined, Product, Buckets, Attributes, EnabledStatus, MultiSession) ->
  	add_subscriber(Identity, ocs:generate_password(),
  			Product, Buckets, Attributes, EnabledStatus, MultiSession);
  
negative.code: 	when
  		Identity :: string() | binary(),
  		Password :: string() | binary(),
  		Product :: string(),
  		Result :: {ok, #subscriber{}} | {error, Reason},
  		Reason :: term().
  %% @equiv add_subscriber(Identity, Password, Product, [], [], true, false)
  