Index: D:/Workspace/Projekte/activeMQ/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java =================================================================== --- D:/Workspace/Projekte/activeMQ/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java (revision 598161) +++ D:/Workspace/Projekte/activeMQ/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java (working copy) @@ -129,9 +129,10 @@ if((ref = container.remove(messageId)) != null) { TopicSubAck tsa = ackContainer.get(ref.getAckEntry()); if (tsa != null) { + StoreEntry entry = ref.getAckEntry(); + entry = ackContainer.refresh(entry); + /* DONT saves the count */ if (tsa.decrementCount() <= 0) { - StoreEntry entry = ref.getAckEntry(); - entry = ackContainer.refresh(entry); ackContainer.remove(entry); ReferenceRecord rr = messageContainer.get(messageId); if (rr != null) { @@ -141,6 +142,11 @@ removeInterest(rr); removeMessage = true; } + } else { + // remove the old entry + ackContainer.remove(entry); + // save the new entry with updated count + ackContainer.add(tsa); } } }else{