diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
index 50354c7..1f354b8 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/LogAlgorithmForPathMergeVertex.java
@@ -86,19 +86,18 @@
      * head send message to path
      */
     public void sendMsgToPathVertex(Iterator<MessageWritable> msgIterator) {
-        if(getSuperstep() == 3){
-            headFlag = (byte)(getVertexValue().getState() | MessageFlag.IS_HEAD);
-            if(headFlag == 0)
-                sendOutMsg();
-        } else {
-            while (msgIterator.hasNext()) {
-                incomingMsg = msgIterator.next();
-                processMerge();
-                headFlag = (byte)(incomingMsg.getFlag() | MessageFlag.IS_HEAD);
-                if(headFlag > 0)
-                    getVertexValue().setState(MessageFlag.IS_HEAD);
-            }
+        //process merge when receiving msg
+        while (msgIterator.hasNext()) {
+            incomingMsg = msgIterator.next();
+            processMerge();
+            headFlag = (byte)(incomingMsg.getFlag() | MessageFlag.IS_HEAD);
+            if(headFlag > 0)
+                getVertexValue().setState(MessageFlag.IS_HEAD);
         }
+        //send out wantToMerge msg
+        headFlag = (byte)(getVertexValue().getState() | MessageFlag.IS_HEAD);
+        if(headFlag == 0)
+            sendOutMsg();
     }
 
     /**
