diff --git a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java
index 56fdb89581..f4e4f15589 100644
--- a/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java
+++ b/spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java
@@ -21,8 +21,10 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.locks.Lock;
@@ -75,6 +77,9 @@ import org.springframework.util.CollectionUtils;
* By default the {@link CorrelationStrategy} will be a
* {@link HeaderAttributeCorrelationStrategy} and the {@link ReleaseStrategy} will be a
* {@link SequenceSizeReleaseStrategy}.
+ *
+ * Use proper {@link CorrelationStrategy} for cases when same {@link MessageStore} is used
+ * for multiple handlers to ensure uniqueness of message groups across handlers.
*
* @author Iwein Fuld
* @author Dave Syer
@@ -83,7 +88,7 @@ import org.springframework.util.CollectionUtils;
* @author Artem Bilan
* @author David Liu
* @author Enrique Rodriguez
- *
+ * @author Meherzad Lahewala
* @since 2.0
*/
public abstract class AbstractCorrelatingMessageHandler extends AbstractMessageProducingHandler
@@ -95,6 +100,8 @@ public abstract class AbstractCorrelatingMessageHandler extends AbstractMessageP
private final Map> expireGroupScheduledFutures = new HashMap<>();
+ private final Set