diff --git a/core/src/main/java/net/kuujo/copycat/internal/PassiveState.java b/core/src/main/java/net/kuujo/copycat/internal/PassiveState.java
index <HASH>..<HASH> 100644
--- a/core/src/main/java/net/kuujo/copycat/internal/PassiveState.java
+++ b/core/src/main/java/net/kuujo/copycat/internal/PassiveState.java
@@ -110,13 +110,15 @@ public class PassiveState extends AbstractState {
 
       // Get a list of entries up to 1MB in size.
       List<ByteBuffer> entries = new ArrayList<>(1024);
-      long index = member.getIndex();
-      int size = 0;
-      while (size < 1024 * 1024 && index < context.getCommitIndex()) {
-        ByteBuffer entry = context.log().getEntry(index);
-        size += entry.limit();
-        entries.add(entry);
-        index++;
+      if (!context.log().isEmpty()) {
+        long index = Math.max(member.getIndex(), context.log().lastIndex());
+        int size = 0;
+        while (size < 1024 * 1024 && index < context.getCommitIndex()) {
+          ByteBuffer entry = context.log().getEntry(index);
+          size += entry.limit();
+          entries.add(entry);
+          index++;
+        }
       }
 
       syncHandler.handle(SyncRequest.builder()
Handle missing entries due to log compaction in gossip-based replication.