diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState.java b/router/java/src/net/i2p/router/transport/udp/PeerState.java
index afeffa89feeb75244621a6d8762f02c86fd8075b..9d8e136a1f95d19f1d70907e3951d6a8444bfd5f 100644
--- a/router/java/src/net/i2p/router/transport/udp/PeerState.java
+++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java
@@ -1927,8 +1927,9 @@ public class PeerState {
         if (_dead)
             return false;
         
+        final long messageId = bitfield.getMessageId();
         if (bitfield.receivedComplete()) {
-            return acked(bitfield.getMessageId());
+            return acked(messageId);
         }
     
         OutboundMessageState state = null;
@@ -1936,7 +1937,7 @@ public class PeerState {
         synchronized (_outboundMessages) {
             for (Iterator<OutboundMessageState> iter = _outboundMessages.iterator(); iter.hasNext(); ) {
                 state = iter.next();
-                if (state.getMessageId() == bitfield.getMessageId()) {
+                if (state.getMessageId() == messageId) {
                     boolean complete = state.acked(bitfield);
                     if (complete) {
                         isComplete = true;