diff --git a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
index 5acf8e9..6ccb629 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/intent/impl/GossipIntentStore.java
@@ -295,13 +295,16 @@
         // Remove the intent data from the pending map if the newData is more
         // recent or equal to the existing entry. No matter if it is an acceptable
         // update or not
-        pendingMap.compute(newData.key(), (key, existingValue) -> {
-            if (existingValue == null || !existingValue.version().isNewerThan(newData.version())) {
-                return null;
-            } else {
-                return existingValue;
-            }
-        });
+        Key key = newData.key();
+        IntentData existingValue = pendingMap.get(key);
+
+        if (existingValue == null) {
+            return;
+        }
+
+        if (!existingValue.version().isNewerThan(newData.version())) {
+            pendingMap.remove(key, existingValue);
+        }
     }
 
     private Collection<NodeId> getPeerNodes(Key key, IntentData data) {
