diff --git a/aeron-driver/src/main/java/io/aeron/driver/IpcPublication.java b/aeron-driver/src/main/java/io/aeron/driver/IpcPublication.java
index <HASH>..<HASH> 100644
--- a/aeron-driver/src/main/java/io/aeron/driver/IpcPublication.java
+++ b/aeron-driver/src/main/java/io/aeron/driver/IpcPublication.java
@@ -144,6 +144,7 @@ public class IpcPublication implements DriverManagedResource, Subscribable
 
     public void removeSubscriber(final ReadablePosition subscriberPosition)
     {
+        consumerPosition = Math.max(consumerPosition, subscriberPosition.getVolatile());
         subscriberPositions = ArrayUtil.remove(subscriberPositions, subscriberPosition);
         subscriberPosition.close();
     }
[Java] Update consumer position when a subscription is removed to ensure consumption is not missed.