diff --git a/src/main/java/org/springframework/data/redis/connection/srp/SrpConnection.java b/src/main/java/org/springframework/data/redis/connection/srp/SrpConnection.java
index b31b2ab13..cd1066fbf 100644
--- a/src/main/java/org/springframework/data/redis/connection/srp/SrpConnection.java
+++ b/src/main/java/org/springframework/data/redis/connection/srp/SrpConnection.java
@@ -16,6 +16,7 @@
package org.springframework.data.redis.connection.srp;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -42,6 +43,9 @@ import redis.client.RedisException;
import redis.reply.Reply;
import com.google.common.base.Charsets;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
/**
* {@code RedisConnection} implementation on top of spullara Redis Protocol library.
@@ -56,8 +60,36 @@ public class SrpConnection implements RedisConnection {
private boolean isClosed = false;
private boolean isMulti = false;
private Pipeline pipeline;
+ private PipelineTracker callback;
private volatile SrpSubscription subscription;
+ private static class PipelineTracker implements FutureCallback