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 00711eb296646c57c50eeae4408f98226eee45da..1fd369f796c8ccb793323ab611e4c57893b0642a 100644
--- a/router/java/src/net/i2p/router/transport/udp/PeerState.java
+++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java
@@ -718,7 +718,7 @@ public class PeerState {
      *  We received the message specified completely.
      *  @param bytes if less than or equal to zero, message is a duplicate.
      */
-    void messageFullyReceived(Long messageId, int bytes) {
+    synchronized void messageFullyReceived(Long messageId, int bytes) {
         if (bytes > 0) {
             _receiveBytes += bytes;
             _messagesReceived++;