anchor.diff:  	
   	%% With zero timeout should block indefinitely
   	ok = erldis_client:sr_scall(Client,[<<"flushdb">>]),
  -	ok = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"mylist">>,<<"target">>,0]).
  -	
  +	
  +	spawn(?MODULE, run_command, [self(),Client2,[<<"brpoplpush">>,<<"mylist">>,<<"target">>,0]]),
  +	true = erldis_client:sr_scall(Client,[<<"rpush">>,<<"mylist">>,<<"foo">>]),
  +	
  +	receive
  +		[<<"foo">>] -> ok;
  +		Resp -> ct:fail(Resp)
  +	after 2000 ->
  +		ct:fail({error, <<"ERR Timeout">>})
  +	end,
  +
  +	[<<"foo">>] = erldis_client:scall(Client,[<<"lrange">>,<<"target">>,0,-1]),
  +	[] = erldis_client:scall(Client,[<<"lrange">>,<<"mylist">>,0,-1]),
  +	
  +	%% With a client BLPOPing the target list
  +    ok = erldis_client:sr_scall(Client,[<<"flushdb">>]),
  +	
  +	spawn(erldis_client,scall,[Client2,[<<"blpop">>,<<"target">>,0]]),
  +	spawn(?MODULE, run_command, [self(),Client3,[<<"brpoplpush">>,<<"mylist">>,<<"target">>,0]]),
  +	true = erldis_client:sr_scall(Client,[<<"rpush">>,<<"mylist">>,<<"foo">>]),
  +	
  +	receive
  +		[<<"foo">>] -> ok;
  +		Resp2 -> ct:fail(Resp2)
  +	after 2000 ->
  +		ct:fail("ERR Timeout")
  +	end,
  +	
  +	false = erldis_client:sr_scall(Client,[<<"exists">>,<<"target">>]),
  +	
  +	%% With wrong destination type
  +	ok = erldis_client:sr_scall(Client,[<<"flushdb">>]),
  +	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"I'm not a list">>]),
  +	true = erldis_client:sr_scall(Client,[<<"rpush">>,<<"mylist">>,<<"foo">>]),
  +	{error,<<"ERR Operation against a key holding the wrong kind of value">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"mylist">>,<<"string">>,1]),
  +	
  +	%% With wrong source type
  +	ok = erldis_client:sr_scall(Client,[<<"flushdb">>]),
  +	ok = erldis_client:sr_scall(Client,[<<"set">>,<<"string">>,<<"I'm not a list">>]),
  +	true = erldis_client:sr_scall(Client,[<<"rpush">>,<<"target">>,<<"foo">>]),
  +	{error,<<"ERR Operation against a key holding the wrong kind of value">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"string">>,<<"target">>,1]),
  +	
  +	%% Linked BRPOPLPUSH
  +	ok = erldis_client:sr_scall(Client,[<<"flushdb">>]),
  +	
  +	spawn(erldis_client,scall,[Client,[<<"brpoplpush">>,<<"list1">>,<<"list2">>,0]]),
  +	spawn(erldis_client,scall,[Client,[<<"brpoplpush">>,<<"list2">>,<<"list3">>,0]]),
  +	true = erldis_client:sr_scall(Client,[<<"rpush">>,<<"list1">>,<<"foo">>]),
  +	
  +	nil = erldis_client:sr_scall(Client,[<<"lrange">>,<<"list1">>,0,-1]),
  +	nil = erldis_client:sr_scall(Client,[<<"lrange">>,<<"list2">>,0,-1]),
  +	<<"foo">> = erldis_client:sr_scall(Client,[<<"lrange">>,<<"list3">>,0,-1]),
  +	
  +	%% Timeout
  +	[] = erldis_client:scall(Client,[<<"brpoplpush">>,<<"list1">>,<<"list2">>,1]),
  +	
  +	{error,<<"ERR wrong number of arguments for 'BRPOPLPUSH' command">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"l1">>,<<"l2">>]),
  +	{error,<<"ERR wrong number of arguments for 'BRPOPLPUSH' command">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"l1">>]),
  +	{error,<<"ERR wrong number of arguments for 'BRPOPLPUSH' command">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>]),
  +	{error,<<"ERR wrong number of arguments for 'BRPOPLPUSH' command">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"l1">>,<<"l2">>,1,1]),
  +	{error,<<"ERR timeout is not an integer or out of range">>} = erldis_client:sr_scall(Client,[<<"brpoplpush">>,<<"l1">>,<<"l2">>,<<"str">>]).
  +
  
positive.code: 		{ok,Client} -> {ok,Client};
  		_ -> connect_erldis(Times - 1)
  	end.
  	
  push_llen_lindex(Config) ->
  	{client,Client} = lists:keyfind(client, 1, Config),
  	
  
negative.code: 	[<<"mylist4">>,<<"a">>] = erldis_client:scall(Client,[<<"blpop">>,<<"mylist3">>,<<"mylist4">>,1]),
  	[<<"mylist4">>,<<"d">>] = erldis_client:scall(Client,[<<"brpop">>,<<"mylist3">>,<<"mylist4">>,1]),
  	
  	false = erldis_client:sr_scall(Client,[<<"llen">>,<<"mylist3">>]),
  	2 = erldis_client:sr_scall(Client,[<<"llen">>,<<"mylist4">>]),
  	
  	{error,<<"ERR wrong number of arguments for 'BLPOP' command">>} = erldis_client:sr_scall(Client,[<<"blpop">>]),
  