send msg to bidirection in p2
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();
     }
 
     /**