fixed a bug with multiple HOs
diff --git a/src/main/java/org.onosproject.xran/controller/XranControllerImpl.java b/src/main/java/org.onosproject.xran/controller/XranControllerImpl.java
index 8040cea..47af1f1 100644
--- a/src/main/java/org.onosproject.xran/controller/XranControllerImpl.java
+++ b/src/main/java/org.onosproject.xran/controller/XranControllerImpl.java
@@ -175,6 +175,7 @@
     private ConcurrentMap<ECGI, SynchronousQueue<String>> hoMap = new ConcurrentHashMap<>();
     private ConcurrentMap<ECGI, SynchronousQueue<String>> rrmcellMap = new ConcurrentHashMap<>();
     private ConcurrentMap<CRNTI, SynchronousQueue<String>> scellAddMap = new ConcurrentHashMap<>();
+    // Map used to keep messages in pairs (HO Complete - CTX Update, Adm Status - CTX Update)
     private ConcurrentMap<EcgiCrntiPair, ContextUpdateHandler> contextUpdateMap = new ConcurrentHashMap<>();
     /* QUEUE */
     private BlockingQueue<Long> ueIdQueue = new LinkedBlockingQueue<>();
@@ -890,7 +891,8 @@
                         v = new ContextUpdateHandler();
                     }
                     if (v.setAdmissionStatus(ueAdmissionStatus)) {
-                        handleContextUpdate(v.getContextUpdate(), ctx, false);
+                        handlePairedPackets(v.getContextUpdate(), ctx, false);
+                        v.reset();
                     }
                     return v;
                 });
@@ -912,7 +914,7 @@
                 }
                 if (v.setContextUpdate(ueContextUpdate)) {
                     HOComplete hoComplete = v.getHoComplete();
-                    handleContextUpdate(ueContextUpdate, ctx, hoComplete != null);
+                    handlePairedPackets(ueContextUpdate, ctx, hoComplete != null);
                     if (hoComplete != null) {
                         try {
                             hoMap.get(hoComplete.getEcgiS()).put("Hand Over Completed");
@@ -923,6 +925,7 @@
                             hoMap.remove(hoComplete.getEcgiS());
                         }
                     }
+                    v.reset();
                 }
                 return v;
             });
@@ -1049,7 +1052,7 @@
                     v = new ContextUpdateHandler();
                 }
                 if (v.setHoComplete(hoComplete)) {
-                    handleContextUpdate(v.getContextUpdate(), ctx, true);
+                    handlePairedPackets(v.getContextUpdate(), ctx, true);
 
                     try {
                         hoMap.get(hoComplete.getEcgiS()).put("Hand Over Completed");
@@ -1059,6 +1062,7 @@
                     } finally {
                         hoMap.remove(hoComplete.getEcgiS());
                     }
+                    v.reset();
                 }
                 return v;
             });
@@ -1342,7 +1346,7 @@
          * @param ctx           channel context for the CELL
          * @param handoff       true if we handle a Hand Off
          */
-        private void handleContextUpdate(UEContextUpdate contextUpdate, ChannelHandlerContext ctx, boolean handoff) {
+        private void handlePairedPackets(UEContextUpdate contextUpdate, ChannelHandlerContext ctx, boolean handoff) {
             RnibUe ue;
             RnibCell cell = xranStore.getCell(contextUpdate.getEcgi());
 
diff --git a/src/main/java/org.onosproject.xran/identifiers/contextUpdateHandler.java b/src/main/java/org.onosproject.xran/identifiers/contextUpdateHandler.java
index 4372d8b..d1fcfcf 100644
--- a/src/main/java/org.onosproject.xran/identifiers/contextUpdateHandler.java
+++ b/src/main/java/org.onosproject.xran/identifiers/contextUpdateHandler.java
@@ -86,6 +86,12 @@
         return contextUpdate != null;
     }
 
+    public void reset() {
+        this.hoComplete = null;
+        this.admissionStatus = null;
+        this.contextUpdate = null;
+    }
+
     @Override
     public String toString() {
         return "ContextUpdateHandler{" +